If you would like to use a home server the following is recommended,
- Dedicated Laptop to run virtual machine software.
- Dynamic DNS Service such as Dyn (most Internet providers will not provide a static IP Address).
Virtual Machine Options for Your Desktop Computer
On your own desktop, I personally like the paid VMWare Workstation and on the Mac I prefer VMWare Fusion over Parallels. Free options though are just as good to start,
- VMware Workstation Player - there are click compare to see the key differences with the paid version, namely Snapshot capability.
- VMWare Fusion for Mac OS- similarly it's likely missing Snapshops.
- Sun/Oracle VirtualBox - don't recall limitations but it has historically been hard to use.
Setup Virtual Machine
Setup is straight-forward, but the key thing for running servers are,
- Ensure the VM has it's own unique IP
VMWare Fusion 11.5.0 on Mac OS X
- File New
- "Install from disc or image", Continue
- "Use another dics or disc image..." and select the downloaded iso file, Continue
- "Legacy BIOS", Continue
- "Customize Settings"
- Save As: "Tin Ubuntu 64-bit Server 22.04.3", Save
You will see a Window to specify specifics in Hardware,
Click "Network Adapter" and the default will be "Share with my Mac". This is problematic because we want to treat the VM as its own distinct server. Select instead under "Bridge Networking",
- Ethernet - only if connected and the button status shows green. For servers ethernet is more reliable and ideal.
- Wi-Fi - If you do not have Ethernet
- Autodetect - I don't like to use, but if you intend to carry our laptop around then pick this.
Click "Hard Disk (SCSI)" and change size from default 20.00 GB to 120 GB (Don't worry this does not take up your disk space). Click Apply, then Show All.
Click "Processors & Memory" and depending on your computer's available Memory lower up increase accordingly. Ubuntu recommends 1024 MB (aka 1GB), but for the purposes of learning 512 MB is sufficient.
Click "Show All" to go back and I like to disable sharing of unnecessary peripherals for efficiency,
- Bluetooth
- Printer
- Camera (remove)
Dynamic DNS
DynDNS.com - provides some free DNS. Also, I believe it allows you to use dynamic DNS with real Domains provided you purchase from them.
Provided you setup your Dyn DNS account with basic user and password (there's Key generation now but I am not using real domains yet so will look into it later)
After 5 minutes of research I opted for the command line based client, ddclient noted on the Dyn DNS website,
sudo apt-get install ddclient Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: ddclient 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 71.7 kB of archives. After this operation, 338 kB of additional disk space will be used. Get:1 http://ca.archive.ubuntu.com/ubuntu/ trusty/universe ddclient all 3.8.1-1ubuntu2 [71.7 kB] Fetched 71.7 kB in 0s (300 kB/s) Preconfiguring packages ... Selecting previously unselected package ddclient. (Reading database ... 169652 files and directories currently installed.) Preparing to unpack .../ddclient_3.8.1-1ubuntu2_all.deb ... Unpacking ddclient (3.8.1-1ubuntu2) ... Processing triggers for man-db (2.6.7.1-1ubuntu1) ... Processing triggers for ureadahead (0.100.0-16) ... ureadahead will be reprofiled on next reboot Setting up ddclient (3.8.1-1ubuntu2) ... update-rc.d: warning: stop runlevel arguments (1) do not match ddclient Default-Stop values (0 1 6) # Maybe look up what this means, but everything works. Processing triggers for ureadahead (0.100.0-16) ...
Selected Dynamic DNS as the service, put in user name and pass and using generated list picked my entries. Also chose to use their IP lookup service, rebooted and was done.