Saturday, February 11, 2023

Java based Dell iDAC tool to connect to multiple hosts


If you have problems connecting to older Dell idracs that require an outdated java, you can use this app. It's a simple batch file on top of a standalone java bin with the security settings preconfigured to work.

Just run the batch called idrac.bat and the script will ask for the server url (for the idrac and not the main server) and login details. Then it will launch the internal java and connect you to the console with the full ability to mount ISOs.

No need to authenticate on the idrac website for it to work beforehand. It's pretty quick too.

Virustotal 248a0fa3f2f4c673366a56db4528aabf6a02e84f9c63324ab5538f6220a6a800

Friday, June 19, 2020

Simple guide to create a self hosted SWG server on Ubuntu 18 using SWGEmu (update 2020)

If you want to set up your own Star Wars Galaxies dev environment on SWGEmu, it's pretty straightforward. There's a lot of info out there, and this doesn't cover all of it, but it's a simple how-to that allows you to log in and play around.

We're going to use Virtualbox and Ubuntu 18 Server. You will need to install SWGEmu beforehand. We will also create a shared folder with the host in order to copy needed game world, so Virtualbox Guest Additions is required

Install Ubuntu 18 Server with a static IP and at least 4 CPU cores and 4GB RAM (the more, the better).

Find the SWGEmu Folder location by going to SWGEmu Launchpad > Settings > Options and note the location.

 For this install, the location is C:/Program Files/SWGEmu

Create a shared folder in Virtualbox with that location.

Check "Read-Only" "Auto-Mount" "Make Permanent" and set the mount point to /var/swgtre
This is where we will set the map world location. (alternatively you can just copy the TRE files to the server)

Now we're ready to power on the VM and set up the server.

Install Virtualbox Guest Additions

sudo apt install -y build-essential dkms linux-headers-$(uname -r)
sudo mkdir -p /mnt/cdrom && sudo mount /dev/cdrom /mnt/cdrom 2> /dev/null
cd /mnt/cdrom && sudo sh ./ --nox11
sudo usermod -G vboxsf -a $USER
sudo reboot

Verify you have access to the share
ls /var/swgtre

  Install dependencies

sudo apt-get update && sudo apt install -y build-essential libmysqlclient-dev liblua5.3-dev libdb5.3-dev libssl-dev cmake git default-jre mariadb-server-10.1 mariadb-server-core-10.1

Create the working environment

mkdir ~/swg && cd ~/swg
git clone
cd ~/swg/Core3/MMOCoreORB
GETC=$(cat /proc/cpuinfo | grep processor | wc -l) && make -j$GETC
(This will take a long time to finish)


Point the world maps to the share

sed -i 's/TrePath \= \"\/home\/swgemu\/Desktop\/SWGEmu\"\,/TrePath \= \"\/var\/swgtre\"\,/g' $HOME/swg/Core3/MMOCoreORB/bin/conf/config.lua


Set up the database

cd ~/swg && sudo mysql_secure_installation
Existing password blank, enter 123456 for the new password.

echo 'CREATE DATABASE swgemu;' | sudo mysql -uroot -p123456
echo 'GRANT ALL ON *.* TO 'swgemu'@'localhost' IDENTIFIED BY "123456";' | sudo mysql -uroot -p123456
sudo mysql -p123456 -e source -e ~/swg/Core3/MMOCoreORB/sql/swgemu.sql;
sudo mysql -p123456 swgemu -e source -e ~/swg/Core3/MMOCoreORB/sql/datatables.sql;
sudo mysql -p123456 swgemu -e source -e ~/swg/Core3/MMOCoreORB/sql/mantis.sql;
ips=$(ip -o addr show up primary scope global | while read -r num dev fam addr rest; do echo ${addr%/*}; done) && echo $ips
sudo mysql -p123456 swgemu -v -e "update galaxy set address='$ips'"

Run the server

cd ~/swg/Core3/MMOCoreORB/bin

Create a SWGEmu Launchpad 

Add the IP to your server

Log into the server as an admin 

Use the username:


Create a player, then disconnect, log out and close the game. Also, kill the process for the server in the terminal with ctrl-c.

Update the admin user

sudo mysql -p123456 swgemu -v -e "UPDATE swgemu.accounts SET admin_level='15' WHERE username='swgadmin'"

Run the server again

cd ~/swg/Core3/MMOCoreORB/bin

That's it. You should have a test environment to play around in. This guide is nowhere near ready for you to host this outside of your network but should be fine for testing. Further information can be found at the official SWGEmu site.

Thursday, December 19, 2019

Stream a looping video to Twitch using FFmpeg for testing

If you want to stream from Linux or a Raspberry Pi for testing quality, you can use FFmpeg to stream to Twitch.

It works on Windows with VMs, like Virtualbox, where OBS and Streamlabs doesn't work.

You will need your stream key, ffmpeg and a local rtmp twitch url:

Find an MP4 video around 720p in size if you're going to use a raspberry pi. Anything larger will get dropped frames. In Windows/Linux it shouldn't matter.

ffmpeg -stream_loop -1 -i VIDEO.mp4 -c:v libx264 -s 852x480 -r 30 -f flv "rtmp://YOUR_URL/STREAM_KEY?bandwidthtest=true"

The command basically takes a video and loops it over and over so you can do long term testing. It is also a low resource task (compared to X11 streaming).

The last bit, the "bandwidthtest=true", is for Twitch Inspector. You can see how the stream is without actually going live.

Twitch inspector will let you know how well your stream is doing, and it's more accurate than your live dashboard.

If you actually want to go live with and see the results firsthand, remove: "?bandwidthtest=true"

There are probably better flags for ffmpeg to manage keyframes and other parameters, but for testing this is stable enough.

With different platform ingest points, you can stream to Mixer/Youtube/Facebook Live and others. You should be able to stream multiple services, at the same time, if you have enough resources.

Friday, May 24, 2019

Use TorGuard OpenVPN servers in OPNsense firewall

This is how to use multiple Torguard OpenVPN servers in an OPNsense server. Adapted from pfSense instructions here.


System > General > DNS Servers
Add the following:

Create trust certificate

System > Trust > Certificates > Add
Select "Import an existing Certificate Authority"
Descriptive name: TG-CA
Certificate data: (get the latest key from here, copy the entire file)
Private key data: <leave blank>

Certificate authority

System > Trust > Authorities > Add
Descriptive Name: TG-internal-CA
Method: Create an internal Certificate Authority
Key length: 2048
Digest Algorithm: SHA1
Lifetime: 3650
Country Code: <put anything>
State or Province: <put anything>
City: <put anything>
Organization: <put anything>
Email Address: <put anything>
Common Name: internal-ca

Certificate manager

System > Trust > Certificates > Add
Descriptive Name: TG-Certificate
Method: Create an internal Certificate Authority
Key length: 2048
Digest Algorithm: SHA1
Lifetime: 3650
Country Code: <put anything>
State or Province: <put anything>
City: <put anything>
Organization: <put anything>
Email Address: <put anything>
Common Name: TG-Certificate

OpenVPN Client settings

VPN > OpenVPN > Clients > Add

Description: TG OpenVPN
Server Mode: Peer To Peer (SSL/TLS)
Protocol: UDP
Device Mode: tun
Interface: WAN
Local Port: <leave blank>

Remote server(s):

Server Port(s): 443

Select server at random: Checked
Infinitely resolve server: Checked


Peer Certificate Authority: TG-CA
Client Certificate: Web GUI SSL certificate
Encryption algorithm: BF-CBC (128-bit, 64 bit block)
Auth Digest Algorithm: SHA1 (160-bit)
Hardware Crypto: No Hardware Crypto Acceleration
Compression: Enabled with Adaptive Compression
Disable IPv6: Check
Verbosity level: 1 default

Create OpenVPN interface

Interfaces > Assignments > Click add to the right of TG OpenVPN
You should now see OPT1 on the left. Click OPT1.

Enable interface
Description: TGInterface

(leave everything else blank)

You should have a new interface called TGInterface

Firewall / NAT settings

Firewall > NAT > Outbound

Select: Manual outbound NAT rule generation (no automatic rules are being generated)
Click Save

Change every rule (if you have more than one) to the interface TGInterface. No other settings should change in each rule.

Check VPN status

VPN > OpenVPN > Connection Status

The status should say up