This install is similar to the install on Raspbian and a raspberry pi, still there are some specialities and traps you can run into, especially with the virtual architecture and openvpn service. If you want to install the same setup on a Raspberry Pi, please read my earlier guide on this topic.
WARNING: the openvpn service of ExpressVPN is heavily CPU intense and affects your download speed through expressVPN dramatically!
Therefore you should ALWAYS go with the fastest available CPU assigned to your VM container. For example my Intel Atom C2758 with VT-x2 and AES caps out at around 15 to 20 Mbps.
First create a new PRIVILIGED Proxmox Container.
Make sure your container is shut down, which is indicated in the left column in proxmox webinterface where it shows your install grayed out. Now SSH into your proxmox host server and edit the config of the container you are running expressVPN and jdownloader in. The config is located in /etc/pve/lxc/<ct-id>.conf
So if the container ID of your install is 102 then type on your proxmox cli:
sudo nano /etc/pve/lxc/102.conf
Next add the following two lines to it at the end:
For Proxmox 6.x add this:
lxc.cgroup.devices.allow: c 10:200 rwm lxc.mount.entry = /dev/net dev/net none bind,create=dir
For Proxmox 7.x add this (you need to use
lxc.cgroup2.devices.allow: c 10:200 rwm lxc.mount.entry = /dev/net dev/net none bind,create=dir
Then save and exit the conf file with STRG+X and confirm overwrite with Y.
Boot up your container again and SSH into it. Enter the following command to utilize the prior conf file changes:
mkdir -p /dev/net mknod -m 666 /dev/net/tun c 10 200
Here is the quick version of the installation process, for more details refer to the longer article:
sudo apt-get update sudo apt-get -y upgrade sudo apt-get -y dist-upgrade sudo apt-get -y autoremove sudo apt-get clean
Mount external volume for storage (replace X.X with your server IP address)
sudo mkdir -m 777 /mnt/incoming sudo mount 192.168.X.X:/volume1/incoming/00_download /mnt/incoming
If mount was successful its IMPORTANT to only automount the nfs share with crontab on boot as root, this is a Proxmox speciality:
sudo crontab -e
On the last line add:
@reboot mount 192.168.X.X:/volume1/incoming/00_download/ /mnt/incoming
cd ~/ wget https://download.expressvpn.xyz/clients/linux/expressvpn_2.3.0-1_armhf.deb sudo dpkg -i expressvpn_2.3.0-1_armhf.deb expressvpn activate expressvpn preferences set send_diagnostics false expressvpn preferences set network_lock default expressvpn autoconnect true expressvpn connect ch
Test vpn connection:
expressvpn status curl ifconfig.me
Install headless jDownloader:
mkdir ~/bin mkdir ~/bin/jdownloader cd ~/bin/jdownloader wget http://installer.jdownloader.org/JDownloader.jar sudo apt-get install openjdk-11-jre-headless java -jar JDownloader.jar -norestart
Create autostart service:
cd /etc/systemd/system sudo nano jdownloader.service
[Unit] Description=JDownloader Wants=network.target After=network.target [Service] Type=simple ExecStart=/usr/bin/java -jar /home/pi/bin/jdownloader/JDownloader.jar User=pi RemainAfterExit=yes [Install] WantedBy=multi-user.target
Reload service with:
sudo systemctl daemon-reload sudo systemctl start jdownloader.service sudo systemctl enable jdownloader.service sudo reboot
Go to my.jdownloader.org and wait until your new install appears. Last open up the device and setup the download path of your mounted share volume in the settings, in our case: /mnt/incoming