home.social

#socat — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #socat, aggregated by home.social.

  1. Pro-Grade Ham Radio Displays: Integrating OpenHamClock into PiSignage

    758 words, 4 minutes read time.

    A Helping Hand Needed for a Fellow Programmer

    I’m reaching out to see if you can lend a hand to a talented software developer who’s currently on the job hunt. With over 30 years of experience in C#, .NET (Core/6–8), REST APIs, SQL Server, Angular/Razor, Kubernetes, and cloud CI/CD, he’s a seasoned pro with a proven track record of leading modernization projects and delivering production systems.

    Some of his notable accomplishments include DB2 to SQL migrations, building real-time SignalR apps, and developing full-stack API and frontend projects. Based in Southeast Michigan, he’s looking for senior engineering, architecture, or technical lead roles that will challenge him and utilize his skills.

    If you’re in a position to help, you can check out his resume and portfolio at http://charles.friasteam.com.

    Let’s all look out for each other – if you know of any opportunities that might be a good fit, could you please consider passing this along to your network?

    If you are a ham radio operator, you know that a HamClock is the ultimate shack companion. But what if you want to move beyond a dedicated small screen and integrate that data-rich display into a professional digital signage environment?

    By using PiSignage, you can rotate your HamClock with other station metrics, weather, or club announcements. However, getting a clean, secure, and “pop-up free” experience requires a few tricks.

    In this post, I’ll show you how to deploy OpenHamClock using Docker and how to strip away the UI clutter for a seamless kiosk experience.

    The Setup

    To follow along, you will need a PiSignage server instance. I personally run mine as a Docker container, which keeps the server stack isolated and easy to back up.

    1. The Docker Compose Configuration

    PiSignage and modern browsers often require secure contexts (HTTPS) for certain features. Since the standard HamClock output is HTTP, we’ll use a two-service setup: the clock itself and a lightweight SSL-wrap sidecar using socat and openssl.

    docker-componse.yml

     services:    openhamclock:      image: ghcr.io/accius/openhamclock:latest      container_name: openhamclock      expose:        - "3000"      environment:        - CALLSIGN=<CALL SIGN>        - LOCATOR=<Grid Square Locator>        - THEME=dark        - UNITS=imperial      restart: unless-stopped     ssl-wrap:      image: alpine      container_name: hamclock-ssl      ports:        - "3000:3000"      command: >        sh -c "apk add --no-cache socat openssl &&                openssl req -x509 -newkey rsa:2048 -keyout /tmp/key.pem -out /tmp/cert.pem -days 365 -nodes -subj '/CN=localhost' &&               cat /tmp/cert.pem /tmp/key.pem > /tmp/combined.pem &&               socat OPENSSL-LISTEN:3000,cert=/tmp/combined.pem,verify=0,fork,reuseaddr TCP:openhamclock:3000"      restart: unless-stopped 

    2. Silencing the “What’s New” Pop-ups

    When using HamClock as a signage element, you want it to be “set and forget.” The “What’s New” slide-ins are helpful for desktop users but ruin a clean kiosk display.

    While there is a formal change request pending for a toggle, you can currently “force” these elements to stay hidden by injecting a bit of CSS directly into the distribution files. Run this command within your app environment:

    find /app/dist -name "*.css" -exec sh -c 'echo "div[style*=\"whatsNewSlideIn\"], div[style*=\"backdrop-filter\"] { display: none !important; }" >> {}' \;
    

    3. Setting Up the Slide in PiSignage

    Once your containers are humming along, you need to tell PiSignage how to display the clock.

    Create the Weblink Asset

    1. Log in to your PiSignage Admin Panel.
    2. Navigate to Assets > Add > Weblink.
    3. Fill in the details:
      • Name: OpenHamClock
      • Link Address: https://<YOUR-HOSTNAME>:3000/?kiosk=true
    4. Click Save.

    Pro Tip: The ?kiosk=true suffix is critical. It tells HamClock to hide its own internal menus and headers, giving you a dedicated, high-contrast dashboard perfect for a wall-mounted display.

    Deploy to Your Player

    1. Go to Playlists and add your new “OpenHamClock” asset.
    2. Set the Duration: Set this to 0 for a permanent display, or a high number (like 300 for 5 minutes) if it’s part of a rotation.
    3. Go to Groups, select your player, and deploy the playlist.

    Your screen should refresh and show a beautiful, clean HamClock interface within seconds!

    Running PiSignage in Docker?

    For those of you looking to keep your entire server stack contained, running the PiSignage central server in Docker is the way to go. It keeps your host OS clean and makes management a breeze.

    If you’d like me to discuss how to set up a dockerized PiSignage server, please comment below!

    — 73 —

    Call to Action

    Getting this stack to play nice wasn’t a “one-and-done” install. It was a hard-fought process that took multiple attempts to finally crack the code on bypassing those “What’s New” screens and forcing a clean kiosk display. But the victory is in the uptime.

    Don’t just lurk. If you’ve got the guts to show how you’re rebuilding your station on the wreckage of the old ways, drop a comment below. How are you occupying the victory today?

    SUPPORTSUBSCRIBECONTACT ME

    D. Bryan King

    Sources

    Disclaimer:

    I love sharing what I’m learning, but please keep in mind that everything I write here—including this post—is just my personal take. These are my own opinions based on my research and my understanding of things at the time I’m writing them. Since life moves way too fast and things change quickly, please use your own best judgment and consult the experts for your specific situations!

    Related Posts

    Rate this:

    #AlpineLinux #AmateurRadioDashboard #amateurRadioTechnology #Automation #containerization #CSSInjection #CustomCSS #DetroitHamRadio #devops #DigitalDashboard #DigitalSignage #DisplaySolutions #Docker #DockerCompose #DXCluster #EN82le #GHCR #gridSquare #hamRadio #HamRadioKiosk #hamRadioSoftware #hamRadioTools #HamClock #HomeLab #HTTPSWrapper #KioskMode #KioskSetup #KioskTrue #Linux #MaidenheadLocator #networkSecurity #OpenSource #OpenHamClock #OpenSSL #piSignage #PiSignageDocker #PiSignageTips #RadioStationDisplay #RaspberryPi #RaspberryPiProjects #realTimeData #RemoteMonitoring #ScreenRotation #SelfHosted #ServerManagement #ShackClock #SignalTracking #SmartShack #Socat #SoftwareWorkaround #SolarData #SSLWrap #StationIntegration #TechGuide #TechnicalTutorial #UITweaks #W8DBK #WebDevelopment #WebLinkAsset
  2. Pro-Grade Ham Radio Displays: Integrating OpenHamClock into PiSignage

    758 words, 4 minutes read time.

    A Helping Hand Needed for a Fellow Programmer

    I’m reaching out to see if you can lend a hand to a talented software developer who’s currently on the job hunt. With over 30 years of experience in C#, .NET (Core/6–8), REST APIs, SQL Server, Angular/Razor, Kubernetes, and cloud CI/CD, he’s a seasoned pro with a proven track record of leading modernization projects and delivering production systems.

    Some of his notable accomplishments include DB2 to SQL migrations, building real-time SignalR apps, and developing full-stack API and frontend projects. Based in Southeast Michigan, he’s looking for senior engineering, architecture, or technical lead roles that will challenge him and utilize his skills.

    If you’re in a position to help, you can check out his resume and portfolio at http://charles.friasteam.com.

    Let’s all look out for each other – if you know of any opportunities that might be a good fit, could you please consider passing this along to your network?

    If you are a ham radio operator, you know that a HamClock is the ultimate shack companion. But what if you want to move beyond a dedicated small screen and integrate that data-rich display into a professional digital signage environment?

    By using PiSignage, you can rotate your HamClock with other station metrics, weather, or club announcements. However, getting a clean, secure, and “pop-up free” experience requires a few tricks.

    In this post, I’ll show you how to deploy OpenHamClock using Docker and how to strip away the UI clutter for a seamless kiosk experience.

    The Setup

    To follow along, you will need a PiSignage server instance. I personally run mine as a Docker container, which keeps the server stack isolated and easy to back up.

    1. The Docker Compose Configuration

    PiSignage and modern browsers often require secure contexts (HTTPS) for certain features. Since the standard HamClock output is HTTP, we’ll use a two-service setup: the clock itself and a lightweight SSL-wrap sidecar using socat and openssl.

    docker-componse.yml

     services:    openhamclock:      image: ghcr.io/accius/openhamclock:latest      container_name: openhamclock      expose:        - "3000"      environment:        - CALLSIGN=<CALL SIGN>        - LOCATOR=<Grid Square Locator>        - THEME=dark        - UNITS=imperial      restart: unless-stopped     ssl-wrap:      image: alpine      container_name: hamclock-ssl      ports:        - "3000:3000"      command: >        sh -c "apk add --no-cache socat openssl &&                openssl req -x509 -newkey rsa:2048 -keyout /tmp/key.pem -out /tmp/cert.pem -days 365 -nodes -subj '/CN=localhost' &&               cat /tmp/cert.pem /tmp/key.pem > /tmp/combined.pem &&               socat OPENSSL-LISTEN:3000,cert=/tmp/combined.pem,verify=0,fork,reuseaddr TCP:openhamclock:3000"      restart: unless-stopped 

    2. Silencing the “What’s New” Pop-ups

    When using HamClock as a signage element, you want it to be “set and forget.” The “What’s New” slide-ins are helpful for desktop users but ruin a clean kiosk display.

    While there is a formal change request pending for a toggle, you can currently “force” these elements to stay hidden by injecting a bit of CSS directly into the distribution files. Run this command within your app environment:

    find /app/dist -name "*.css" -exec sh -c 'echo "div[style*=\"whatsNewSlideIn\"], div[style*=\"backdrop-filter\"] { display: none !important; }" >> {}' \;
    

    3. Setting Up the Slide in PiSignage

    Once your containers are humming along, you need to tell PiSignage how to display the clock.

    Create the Weblink Asset

    1. Log in to your PiSignage Admin Panel.
    2. Navigate to Assets > Add > Weblink.
    3. Fill in the details:
      • Name: OpenHamClock
      • Link Address: https://<YOUR-HOSTNAME>:3000/?kiosk=true
    4. Click Save.

    Pro Tip: The ?kiosk=true suffix is critical. It tells HamClock to hide its own internal menus and headers, giving you a dedicated, high-contrast dashboard perfect for a wall-mounted display.

    Deploy to Your Player

    1. Go to Playlists and add your new “OpenHamClock” asset.
    2. Set the Duration: Set this to 0 for a permanent display, or a high number (like 300 for 5 minutes) if it’s part of a rotation.
    3. Go to Groups, select your player, and deploy the playlist.

    Your screen should refresh and show a beautiful, clean HamClock interface within seconds!

    Running PiSignage in Docker?

    For those of you looking to keep your entire server stack contained, running the PiSignage central server in Docker is the way to go. It keeps your host OS clean and makes management a breeze.

    If you’d like me to discuss how to set up a dockerized PiSignage server, please comment below!

    — 73 —

    Call to Action

    Getting this stack to play nice wasn’t a “one-and-done” install. It was a hard-fought process that took multiple attempts to finally crack the code on bypassing those “What’s New” screens and forcing a clean kiosk display. But the victory is in the uptime.

    Don’t just lurk. If you’ve got the guts to show how you’re rebuilding your station on the wreckage of the old ways, drop a comment below. How are you occupying the victory today?

    SUPPORTSUBSCRIBECONTACT ME

    D. Bryan King

    Sources

    Disclaimer:

    I love sharing what I’m learning, but please keep in mind that everything I write here—including this post—is just my personal take. These are my own opinions based on my research and my understanding of things at the time I’m writing them. Since life moves way too fast and things change quickly, please use your own best judgment and consult the experts for your specific situations!

    Related Posts

    Rate this:

    #AlpineLinux #AmateurRadioDashboard #amateurRadioTechnology #Automation #containerization #CSSInjection #CustomCSS #DetroitHamRadio #devops #DigitalDashboard #DigitalSignage #DisplaySolutions #Docker #DockerCompose #DXCluster #EN82le #GHCR #gridSquare #hamRadio #HamRadioKiosk #hamRadioSoftware #hamRadioTools #HamClock #HomeLab #HTTPSWrapper #KioskMode #KioskSetup #KioskTrue #Linux #MaidenheadLocator #networkSecurity #OpenSource #OpenHamClock #OpenSSL #piSignage #PiSignageDocker #PiSignageTips #RadioStationDisplay #RaspberryPi #RaspberryPiProjects #realTimeData #RemoteMonitoring #ScreenRotation #SelfHosted #ServerManagement #ShackClock #SignalTracking #SmartShack #Socat #SoftwareWorkaround #SolarData #SSLWrap #StationIntegration #TechGuide #TechnicalTutorial #UITweaks #W8DBK #WebDevelopment #WebLinkAsset
  3. Wie ich letzte Woche geschrieben habe, wurde mir ja meine öffentliche #IPv4 genommen, weil mein Provider jetzt #CGNAT macht. Jetzt wollte ich aber weiterhin aus #IPv4only Netzen zumindest mein Wireshark VPN starten können.

    Meine Lösung hat angefangen mit einer einfachen #socat Zeile auf einem VPS. Da ist dann in den letzten Tagen immer mehr dazu gekommen: automatischer Start, automatischer Restart, DynDNS Handling, konfigurierbare Weiterleitungen. Das ganze läuft jetzt auf einem separaten 1€ VPS.

    Solche Lösungen sind nicht neu, aber ich habe das alles mal zusammengefasst und auf GitLab gepackt:
    gitlab.com/EinPhysiker/fritzbo

    Vielleicht findet das ja jemand als Inspiration nützlich.

  4. I am #selfhosting a #Gitea instance (with plans to change to #Forgejo soon), which permanently gets attacked by web scrapers. All the senseless scraping of each commit and each `git blame` makes my VPS sweat quite a bit.

    Simply blocking these scrapers by user agent or IP addresses does not work: Today's 19k requests came from over 17k unique IP addresses, and most had faked UAs.

    With Gitea listening on a local port, and Apache sitting in front of it as a reverse proxy, I put another layer in between. As a prototype, I built a monstrosity with #socat and #Perl which receives each proxied HTTP request, checks for the X-Forwarded-For: header, and if the IP address is new, it aborts the process. If it was already seen before, it will be remembered for 10 minutes, and all subsequent requests will be served as usual.

    This adds a little inconvenience for legitimate users who will get their first request denied, but it took a huge load off my server. I will improve the concept to enable permanently allowing certain blocks of IP addresses, and maybe replace the socattery with a single program, or figure out if this can somehow be done natively with Apache...

  5. #3DPrinting folks, I am trying to see if I can run OctoPrint and make it work via a vertual serial port connection on my #Mac, here's the issue though, if I run #socat, I can't also then run #OctoPrint in the same terminal window because only the commands for that particular program work, is there a way to fix it so that I can run both Socat and OctoPrint at the same time?

  6. Jmd 'ne Idee wie man #socat korrekt benutzt, um einen seriellen Port via #SSH auf einem Remote PC zu nutzen?

  7. A question/issue that puzzles me for a few weeks or so, any guidance would be appreciated

    I have server on #freeBSD running 14.1-RELEASE-p3 now for months, #ZFS filessystem, 5 jails and 3 VMs with #Bhyve

    Running very stable until…

    I installed #Ser2net to broadcast my energy metering data from USB device sending every few seconds a bulk of data. This data is used via #Socat on the jails and VM for #MQTT and database and graph purposes.

    The server freezes more or less and reacts slow via SSH, reboot helps. But even then the issue happens very quickly again, sometime not.

    Mind boggling to me, no log messages which make sense.

    For the test I moved the services to another server with only one data consuming VM.
    Just to rule out any conflicts with previous installed and tested services.

  8. @T_X @troglobit I did find that link, but I don't think I understand #multicast or the #socat syntax enough to follow it.

    It would probably help a lot if I read more than the green parts (see otherwise-unrelated #ADHD toots)

    If you would be so helpful as to even just assure me my solution is on that page it would be very helpful. I could stop bouncing around google and just focus on pulling the solution out of the wall of text

  9. @T_X @troglobit #IPv4

    I think a #socat or similar solution is what I need. Ideally user-space using #linux standard tools tools. If it's some custom download or requires lots of config (or network hardware mods) then I might as well go right to #it

    It's a temp hack to show value before we make a permanent change

  10. Как поменять местами клиент и сервер

    Ситуация: у нас есть сервер и нам нужно подключиться к нему с помощью клиента. Но вот незадача: мы почему‑то не можем инициировать сессию с клиента. Это может быть по причине NAT, настроек VPN‑клиента или просто из‑за ACL на МЭ. Что делать? Давайте попробуем поменять местами клиент и сервер.

    habr.com/ru/articles/837112/

    #socat #клиентсервер #linux

  11. #it #networking gurus!

    I have a number of real-time systems that #multicast data. I want to forward that mcast data from one machine to another on the same physical network but a different mcast address (I guess...?)

    It looks like #ncat, #socat and maybe even #ssh could do this but I can't figure out how to do it with multicast specifically

  12. It's working 🥳

    But I’m using #ser2net (RPi3) and #socat (Docker host) instead of USBIP because the latter is a PITA.

  13. REST API сервер на Bash с использованием сокетов и Apache

    Всем привет! Ранее рассказывал о том, как создать REST API и Web-сервер на PowerShell для Windows, а также упоминал, что подобный сервер будет работать и в системе Linux, благодаря кроссплатформенной версии PowerShell Core . Безусловно, для подобных целей лучше используются специализированные серверные фреймворки или библиотеки, такие как Flask или Django в Python , но меня не покидала идея реализации похожего сервера, где описание логики будет производиться на языке одного только Bash . Приведу примеры, с помощью которых можно создать такой сервер используя сетевые сокеты netcat , socat и ncat , а также веб-сервера Apache с использованием встроенных модулей.

    habr.com/ru/articles/796731/

    #bash #socket #restapi #netcat #socat #ncat #apache #cgi

  14. Needed a simple way to tunnel SSH connection over HTTPS recently.

    It should be trivial, but internets somehow mostly care about sharing SSH and HTTPS on the same port. Or do $ANY over SSH.

    I wanted to completely hide the fact that I use SSH protocol. AFAIU it's easy to detect by looking at the headers.

    Tunneling is supposed to be trivial but has a few caveats. Here is my attempt:

    trofi.github.io/posts/295-ssh-

  15. Interesting: socat can listen on two ports (1). First, it listens on the first provided port (2), where you can connect to (3). Then it listens on the second provided port (4), where you also can connect to (5). You can then send data between these clients, e.g.from the first client (6) to the second client (7) or vice versa.

    The same works via TLS, UDP, IPv6, Unix Sockets, etc.

    This can be useful if you want to connect two clients which can't talk to each other directly via another external accessible system.

    #socat #networking #pentesting

  16. #debian #socat #readline #говно @rf @ua
    ‰ socat /tmp/printer readline
    2022/11/26 21:07:12 socat[4961] E unknown device/address "readline"
    дебиан это унижение
    дистрибутив для опущенцев

  17. I recently tried forwarding the UDP traffic using #socat, but I don't get a response from the server when I try to connect. The command I'm using on the VPS is:

    socat udp-recvfrom:300000,reuseaddr,fork udp4-sendto:<ip>:30000

    where <ip> is the IP address of the minetest server on the VPN. I have confirmed that it is receiving the forwarded UDP packets.

    2/
  18. I spent a good deal of yesterday implementing a way to copy from tmux sessions in a remote connection to my local clipboard ( #copyq, actually ). The receiving process was hanging from lack of what I thought was a EOT or some other mysterious force. I beat my head against multitudinous flat surfaces before trying #socat instead of #netcat to send the text... and there we go.