Neuropentracker: A Simple BitTorrent Tracker for Small Setups

I have published Neuropentracker, a simple BitTorrent tracker on GitHub:
https://github.com/mypapit/neuropentracker

Dashboard Screenshot

What it is

Neuropentracker is written in PHP and is designed for small setups. It is suitable for small organizations, small communities, labs, schools, or internal file-sharing environments.

The main idea behind Neuropentracker is simplicity. It does not try to be a complete torrent portal or a large public tracker. It only provides the basic tracker functions needed by BitTorrent clients, such as announce and scrape support

It is designed for small organization to reduce server load when sharing large files. Instead of every user downloading from one central server,

What it is not

It is not intended for large public torrent sites. It does not include advanced features such as user accounts, ratio tracking, moderation system, or full torrent management portal. Administrators still need to secure the server, database, and tracker configuration properly.

Parting words

Overall, Neuropentracker is a lightweight and practical BitTorrent tracker for small and controlled environments. It is best used when the requirement is simple peer tracking, not a full torrent community platform.

Setting Up Home Assistant on Ubuntu 26.04 Using Docker

Home Assistant is one of the most practical platforms for building a local smart home system. It can connect sensors, switches, cameras, MQTT devices, smart plugs, Zigbee devices, dashboards, and automation rules in one place.

For Ubuntu 26.04, one clean way to install it is by using Home Assistant Container with Docker Compose. This keeps the setup simple, portable, and easy to update. Home Assistant officially supports the container installation method, but note that this method does not include Home Assistant OS apps or Supervisor features. You manage the container yourself.

Screenshots

Step 1: Setting up docker container

sudo apt update
sudo apt upgrade -y

Install required packages:

sudo apt install ca-certificates curl -y

Add Docker’s official GPG key and repository:

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

sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc

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

sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

Then install Docker Engine and Docker Compose plugin

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

Docker’s official documentation lists Ubuntu 26.04 LTS as a supported Ubuntu release for Docker Engine, and recommends installing Docker from its official apt repository.

sudo systemctl status docker

Step 2 Create Home Assistant Folder

Create a folder to store the Home Assistant configuration:

sudo mkdir -p /opt/homeassistant/config
sudo chown -R $USER:$USER /opt/homeassistant
cd /opt/homeassistant

This folder is important because your Home Assistant settings, integrations, dashboards, and YAML files will be stored here.

Step 3. Create Docker Compose File

nano compose.yaml

Paste this configuration

services:
  homeassistant:
    container_name: homeassistant
    image: ghcr.io/home-assistant/home-assistant:stable
    volumes:
      - /opt/homeassistant/config:/config
      - /etc/localtime:/etc/localtime:ro
      - /run/dbus:/run/dbus:ro
    restart: unless-stopped
    privileged: true
    network_mode: host
    environment:
      TZ: Asia/Kuala_Lumpur

Home Assistant recommends network_mode: host for the container setup, because many smart home integrations rely on local network discovery. The official container guide also shows the /config volume, D-Bus mapping, privileged mode, and Docker Compose structure

Start Home Assistant:

docker compose up -d

Check the logs:

docker logs -f homeassistant

Then you can try and access your Home Assistant from your browser

http://YOUR_SERVER_IP:8123
http://192.168.1.50:8123

If you are running UFW firewall, allow port 8123

sudo ufw allow 8123/tcp

Additional Tips:

For an Ubuntu Docker setup, integrations that depend on USB hardware, such as Zigbee dongles, may need device mapping. For example:

devices:
  - /dev/ttyUSB0:/dev/ttyUSB0

Updating Home Assistant

You can periodically execute this to update Home Assistant docker container:

cd /opt/homeassistant
docker compose pull
docker compose down
docker compose up -d

Instantly convert Text to Natural Speech with Basic TTS Web App

Basic TTS is a clean and easy-to-use web application that converts written text into natural-sounding speech. It is designed for users who want to test text-to-speech technology without installing complicated software or dealing with technical setup.

The web app is powered by Piper TTS, a lightweight and capable text-to-speech system. With Basic TTS, users can type their text, choose from several English voice models, and generate speech audio within seconds. Each voice has its own accent and speaking style, making it useful for testing different voice outputs.

One useful feature is its built-in audio control. After generating the speech, users can play, pause, change playback speed, or download the audio file for offline use. This makes Basic TTS suitable for simple voice experiments, accessibility testing, content creation, and quick audio generation.

Making Old DOS Games Sound Better in DOSBox-X with Shan SGM-Pro V5 SoundFont

Old DOS games are already great, but let us be honest, MIDI music can sound very rough if it is played through the default Windows MIDI synthesizer. Some games still sound okay, but many of them lose a lot of character because the instruments sound thin, cheap, or just plain boring.

This is where SoundFonts come in.

A MIDI file does not actually contain recorded music like an MP3. It is more like a set of instructions. It tells the computer which notes to play, which instruments to use, how loud they are, and when they should start or stop. The final sound depends on the synthesizer and instrument bank used to play those instructions.

A SoundFont is basically an instrument bank, usually in .sf2 or .sf3 format. It gives the MIDI synthesizer better instrument samples to work with. So instead of your DOS game music sounding like basic Windows MIDI, it can sound fuller, clearer, and more dramatic.

For this setup, I used Shan SGM-Pro V40 SoundFont. It is based around the SGM-style General MIDI sound, which is popular among retro PC gaming users because it gives many DOS game soundtracks a bigger and more modern sound. More information about Shan SGM-Pro can be found at the VOGONS thread here:

Shan SGM-Pro SoundFont on VOGONS

Why Use DOSBox-X with FluidSynth

DOSBox-X already supports MIDI configuration properly, and it can use FluidSynth to play MIDI through a SoundFont. This is cleaner than routing MIDI into another external program.

The basic idea is simple:

  1. Put the SoundFont file somewhere permanent.
  2. Tell DOSBox-X to use FluidSynth.
  3. Point DOSBox-X to the .sf2 file.
  4. Configure the old DOS game to use General MIDI, Roland Sound Canvas, or MPU-401, depending on what the game supports.

For my setup, I placed the SoundFont here:

/home/mypapit/midi/shan.sf2

You can use another folder if you want. Just make sure the path in the DOSBox-X config matches the actual file location.

DOSBox-X MIDI Configuration

# fluid.soundfont: Soundfont (.SF2 or .SF3) to use with Fluidsynth.
#                  One must be specified, for example GeneralUser_GS.sf2.

mpu401          = intelligent
mpubase         = 330
mididevice      = fluidsynth
midiconfig      =
samplerate      = 48000
mpuirq          = -1
mt32.romdir     =
mt32.model      = auto

fluid.driver    = pulseaudio
fluid.soundfont = "/home/mypapit/midi/shan.sf2"
fluid.reverb    = 20
fluid.chorus    = 16

Game Setup

After changing the DOSBox-X config, you still need to configure the DOS game itself.

In the game sound setup program, choose something like:

Music device: General MIDI
Port: 330
IRQ: 9 or default

Some games may show it as:

Roland MPU-401
Sound Canvas
General MIDI

For many DOS games from the 1990s, General MIDI is the correct choice. Examples include games like Doom, Duke Nukem 3D, Descent, Warcraft II, TIE Fighter, and many LucasArts titles.

Do not choose MT-32 unless the game soundtrack was actually made for MT-32. MT-32 and General MIDI are not the same thing. If you choose the wrong one, the music can sound strange, with incorrect instruments.

TIE-FIGHTER DEMO with SHAN SGM-PRO SoundFont

TIE Fighter is a good game to test this because its MIDI soundtrack benefits a lot from a stronger SoundFont. The music becomes more cinematic and less flat compared to the default Windows MIDI output.

Here is a YouTube video showing TIE Fighter using the Shan SGM-Pro SoundFont:

Star Wars: TIE Fighter with Shan SGM-Pro SoundFont

The difference is clear. The brass, strings, and percussion sound much heavier. It does not sound like original hardware, but that is not the goal here. The goal is to make old DOS MIDI music sound better, fuller, and more enjoyable on a modern machine.

Notes:

Keep the SoundFont file in a fixed folder. Do not put it in a temporary download folder because DOSBox-X will fail to load it if the file is moved.

Use a full path in the config file, especially on Windows.

Restart DOSBox-X after editing the config.

Make sure the game itself is configured for General MIDI or MPU-401 music output.

If there is no music, check the file path first. Most problems come from a wrong SoundFont path or a typo in the filename.

yt-dlp – a verstatile video downloader tool

yt-dlp is a command-line tool for which allows a user to download audio/video from thousands of sites. The project is a fork of youtube-dl, which is based on the now inactive youtube-dlc.

yt-dlp can be installed using official releases or via package manager.

Unix-like operating system

curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o ~/.local/bin/yt-dlp
chmod a+rx ~/.local/bin/yt-dlp  # Make executable

To update yt-dlp in Unix-like operating system

yt-dlp -U

Homebrew MacOS

brew install yt-dlp

Ubuntu

sudo add-apt-repository ppa:tomtomtom/yt-dlp # Add ppa repo to apt
sudo apt update # Update package list
sudo apt install yt-dlp # Install yt-dlp

Snap

sudo snap install --edge yt-dlp

Windows operating system

yt-dlp is also available for Windows operating system by using, winget:

winget install yt-dlp

Microsoft Windows binary package

The binary package for Microsoft Windows binary package can be downloaded from yt-dlp GitHub release page

Note that yt-dlp requires ffmpeg windows binaries which can be obtained from gyan.dev’s Codex FFMPEG Build

Please refer to this post for more information on the tips and tricks on using yt-dlp.

Semi-automatic bash script for triggering NVIDIA GPU fan in Linux

https://gist.github.com/mypapit/01770a1fa47826db1f50caf45f6a9035.js

Hello everybody. I’m sharing a handy script I use to semi-automatically check my GPU temperature and turn on the fan if things get a bit too warm.

I run this on my dedicated SoHo PC server, which hosts a modest LLM and a Minecraft server (yes, both at the same time).

Feel free to drop any suggestions or ideas in the comments. I’d love to hear how you’d improve it!

p/s: I’ve used GWE and CoolerControl, but it doesn’t fit my use case.