Scripts
AlexCMS (this website)
A lightweight, multilingual, self-hosted CMS based on Node.js, Express and PostgreSQL. Its goal is simple use, fast operation and easy Docker installation.
AlexCMS provides a clean admin interface to manage the following:
- 📄 Articles
- 📂 Downloads
- 🖼️ Galleries
- 📝 Guestbook messages
- 🌍 Automatic translations
- 🔐 Secure admin login
- 📊 Visit statistics
- 🧾 SEO settings
✨ Functions
🌍 Multilingual content
- Hungarian + English support by default
- Automatic translation with Google Translate API
- Language change session based
📄 Article system
- HTML content support
- Safe HTML filtering
- Image embedding
- Full CRUD operations
📂 Download management
- File upload
- Download counter
- Automatic file size detection
- Local or external links
🖼️ Gallery
- Image upload
- Categories based on menu
- Multilingual titles
📝 Guestbook
- Public messaging
- Admin moderation and deletion
🔐 Security
- bcrypt password hash
- SVG CAPTCHA
- Session based authentication
- Content Security Policy (CSP)
🧾 SEO
- Dynamic meta description
- Meta keywords
- robots.txt support
- Configurable page title
📦 Log system
- Winston logger
- Daily rotation
- Error logs separated
- Automatic compression
- Console logging
🐳 Docker support
- PostgreSQL container
- Caddy reverse proxy
- HTTPS support
- Persistent data
🛠️ Technological stack
| Technology | Purpose |
|---|---|
| Node.js | Backend runtime |
| Express.js | Web framework |
| PostgreSQL | Database |
| Quill | Text editor |
| EJS | Template engine |
| Docker | Containerization |
| Caddy | Reverse proxy + HTTPS |
| Winston | Logging |
| Multer | File upload |
| bcrypt | Password hashing |
| svg-captcha | CAPTCHA |
| sanitize-html | XSS protection |
| google-translate-api | Translation |
| http-proxy-agent | Proxy support |
🚀 Installation
🐳 Option 1 – Docker
Requirements
- Docker
- Docker Compose
Cloning
Environment files
.session
.env
Start
🌐 Access
http://localhost
or
http://SERVER_IP
📦 Running services
- Node.js CMS (app)
- PostgreSQL (db)
- Caddy (optional HTTPS)
☁️ Option 2 - Cloud (OCI + GitHub Actions)
Fully automated CI/CD system with Oracle Cloud infrastructure.
Includes:
- Terraform infrastructure
- Automatic server setup
- Docker installation
- GitHub Actions pipeline
- Automatic HTTPS (Caddy)
⚙️ GitHub Secrets
- ADMIN_USER – admin user
- COMPARTMENT – OCI compartment ID
- CREDENTIAL – API credential
- DOMAIN – domain name
- FINGERPRINT – API fingerprint
- KEY_FILE – private key
- REPO_VARIABLES_PAT – GitHub token
- SSH_PRIVATE_KEY – SSH key
- SUBNET – subnet ID
- TENANCY – tenancy ID
- USER – OCI user ID
🚀 Deploy process
- Create OCI infrastructure
- Server bootstrap
- Docker installation
- Repo cloning
- Start application
🌐 Result
http://SERVER_IP
https://example.com
🔐 Security
- SSH key access
- Automatic password generation
- Session protection
- Firewall basics
📊 Database tables
- menu – menu system
- articles
- downloads
- gallery
- guestbook
- settings
- visits
🐳 Docker services
- app – CMS
- db – PostgreSQL
- caddy – reverse proxy
Github repo
Alex2026-06-11 14:50:39.935347+02
Wheels on the Bus RPi Projekt
A full-featured Raspberry Pi control system for a toy bus model that plays music, manages LED effects, streams live camera footage, monitors battery and provides a modern web control interface.
Perfect for DIY IoT projects, smart toys and interactive constructions.
🎯 Features
- Two TM1637 displays and SSD1306 OLED dashboard
- MPV based music playback (MP3/WAV)
- WS2812B LED effects
- MJPEG + RTSP live camera stream
- INA226 battery monitoring
- USB gamepad support
- PWM motor and steering control
- Flask + SocketIO web control interface
- PyAudio microphone + MPG123 sound effects
- Clock mode and sleep mode
The bus horn sounds every full hour.
📸 Project pictures



🛠️ Hardware
Raspberry Pi (Zero 2 / 4 recommended)
GPIO allocation:
- Motor ENA: GPIO 5
- Motor IN1: GPIO 26
- Motor IN2: GPIO 12
- Motor IN3: GPIO 16
- Motor IN4: GPIO 20
- LED: GPIO 25
- WS2812B LED: GPIO 13
- TM1637 #1 CLK: GPIO 23
- TM1637 #1 DIO: GPIO 24
- TM1637 #2 CLK: GPIO 27
- TM1637 #2 DIO: GPIO 22
I2C Devices
- SSD1306 OLED: 0x3C
- INA226: 0x40
More hardware
- Raspberry Pi camera module
- USB speaker
- USB microphone
- USB gamepad
📦 Python dependencies
Installation:
pip install rpi-ws281x evdev luma.oled flask-socketio pyaudio numpy tm1637 pillow smbus2 aiohttp⚙️ Configuration
Important variables:
SSL files:
- fullchain.pem
- privkey.pem
MPV socket:
- /tmp/mpvsocket
🚀 Quickstart
- System dependencies:
- Python packages:
- Settings:
(Enable I2C, Camera, SSH)
- Start:
🌐 Web interface

- Dashboard: https://
:443 - Camera: https://
:443/stream.mjpg - RTSP: rtsp://
:8554/ - WebSocket: /ws
🎮 Controller
- A: LED / sleep mode
- B: TM1637 off/on
- X: OLED off/on
- Y: bus mode / shuffle
- LB/RB: speed
- LT/RT: steering wheel
- right stick: progress
- D-pad: volume
🌈 LED effects
- rainbow
- breathing - pulsating blue
- scanner - running light
- meteor – shooting star
- sparkle – sparkle
- police – flashing red/blue
- pulse – rainbow pulse
🔋 Battery
INA226 sensor:
- voltage
- current
- percentage
API:
GET /batterystatus
🎥 Camera
- 854x480 or 1280x720
- RTSP + MJPEG
- WebSocket control
🎵 Music and sound
- MPV playback
- MP3/WAV
- audiobook mode
- shuffle
- microphone input
Sounds:
- bus horn
- engine sound
- index
- sleep sound
🐛 Errors
- LED not working → GPIO group + reboot
- camera not working → vcgencmd get_camera
- MPV error → libmpv2
- I2C error → i2cdetect -y 1
- microphone → arecord -l
- HTTPS warning → self-signed certificate
📱 Dashboard
Web interface control:
- real-time control
- music
- LED
- drive
🔒 Security
- Has HTTPS
- Has WebSocket
- only for local network
no login system
📈 Performance
- CPU: <20% idle
- Camera + effects: ~50%
- RAM: ~150MB
2026-05-08 09:50:16.908243+02
CMDGochi bash tamagochi
CMDGochi is a lightweight, interactive command-line virtual pet client written in Bash.
Manage your digital pets easily from the terminal — create, feed, play with them and monitor their status in real time.
🐾 Overview
CMDGochi brings the nostalgic Tamagotchi experience to command line.
It is designed to be simple and fun to use and allows you to manage multiple virtual pets.
You can track:
- hunger 🍗
- happiness 😊
- energy ⚡
- health ❤️
… all this with intuitive CLI commands.
Let's talk whether you are a developer, system administrator or terminal fan, CMDGochi gives you a little playful recreation without leaving the console.
👤 Profile and access
- 🔑 API key: after registration you will receive a unique API key to access your pets
- 🌐 Language support: multilingual interface (Hungarian, English, Deutsch, Français, Español, Italiano, Nederlands, Čeština, Polski)
🐕 Pets
🐾 Create a new pet
- Give them a cute name (4-16 characters)
- Choose a type
Available animals:
- 🐱 cat
- 🐶 dog
- 🦜 parrot
- 🐹 hamster
- 🐰 rabbit
- 🐭 mouse
- 🦝 raccoon
- 🦡 badger
📋 List pets
- View real-time statistics anytime
- Display ASCII art in the terminal 🖥️
🗑️ Delete pet
- When the time has come, you can say goodbye to a pet
📊 Pet status
⏳ Real-time statistics
- hunger 🍗
- happiness 😊
- energy ⚡
- health ❤️
These are constantly changing over time.
🩹 Health
- If hunger increases to the maximum:
- happiness and energy decrease
- If the pet is sick 🤒 or needs a bath 🛁:
- health decreases
🎂 Growth
- Pets level up and age every 4 days
- When health is 0:
- growth stops 🧊
🎮 Play and care
- 🍎 Feeding: reduces hunger and increases happiness
- 🧸 Play: improves mood but reduces energy
- 🛌 Sleep: replenishes energy but increases hunger
- 🛁 Bathing: keeps clean and improves health
- 💊 Medicine: treats disease and improves well-being
Pets can get sick randomly 🤧, but they can be cured with medicine.
🏆 Pet Hall of Fame
- 🌟 Top 10 oldest pet
- Stats:
- age
- level
- health
- happiness
- type
🖥️ Server
This API is built using Flask and SQLite to provide an easy and fun way to create virtual pets.
- API server:
cmdgochi.mooo.com:5555 - Privacy: does not collect, store or handle sensitive data
📥 Installation
📋 Prerequisites
- Bash (Linux/macOS by default, Git Bash or Windows WSL)
curl- Unicode supported terminal
📦 Dependencies
Ubuntu / Debian
sudo apt-get install jq curl git
Arch Linux / SteamOS
sudo pacman -S jq curl git
RedHat / CentOS
sudo yum install jq curl git
Fedora
sudo dnf install jq curl git
macOS (Homebrew)
brew install jq curl git
💾 Download Repository
git clone https://github.com/Pucur/CMDGochi.gitcd CMDGochibash cmdgochi.sh
Github repo
2026-05-07 11:01:48.034132+02
Computherm B / ProSmart System integration with HomeAssistant
🌡️ Computherm B / ProSmart System Wi-Fi thermostat Home Assistant integration
Connect your Computherm B / ProSmart System Wi-Fi thermostat with the Home Assistant system and take full control of your heating!
Monitor the temperature, manage the boost mode and view the heating schedules — all on one neat dashboard.
🔹 Functions
🌡️ Live temperature monitoring
Display real-time temperature values from the thermostat.
📅 Manual and scheduled target temperature
- Following manual settings
- Monitoring scheduled temperature programs
- Possibility of manual temperature modification
⚡ Boost control
- Boost mode status display (ON / OFF)
- Remaining boost time in minutes
- Modification of boost temperature
📊 Hysteresis values
- Monitoring upper and lower hysteresis values
- More accurate temperature control
🔌 Relay and operating status
- Relay status (ON / OFF)
- Thermostat operating mode:
- HEATING (HEATING)
- COOLING (COOLING)
- OFF
🔄 Fully synchronized sensors
All data it is updated every minute with the help of the integrated data manager (coordinator) for smooth operation.
⚡ Installation using HACS
Option A
- Search for "Computherm B / ProSmart System" integration in HACS and download it.
Option B
- Open HACS with In your Home Assistant system
- Click on Integrations
- Click on the three dots in the upper right corner
- Choose: Custom repositories
- Add this URL:
- the Home Assistant
📦 Configuration
After reboot:
- Go to:
- Settings → Devices & Services → Add Integration
- Select:
- Computherm B / ProSmart System
- Add enter:
- your e-mail address
- password
This is how you connect your thermostat.
📡 Available sensors
Sensor DescriptionTemperatureCurrent room temperatureManual Set PointManually set temperatureSchedule Set PointScheduled temperatureBoost Set PointBoost mode temperatureBoost ActiveBoost mode status (ON / OFF)Boost Remaining boost time (min)Hysteresis HighUpper hysteresis valueHysteresis LowLower hysteresis valueRelay StateRelay state (ON / OFF)FunctionThermostat operation mode (HEATING / COOLING / OFF)🌐 Support and bugs
- Documentation and updates: GitHub repository
- Bug report: GitHub Issues href="https://github.com/Pucur/ProSmartSystem-ComputhermB-HomeAssistant" rel="noopener noreferrer" target="_blank">Github repo
2026-05-07 10:54:46.929557+02
Bing wallpapers for KDE Plasma GUI
Information
This is a script that downloads the latest "image of the day" from Bing.com and saves it to a selected folder.
The script has been tested:
- Arch Linux 6.15.7-arch1-1
- KDE Plasma
🚀 Usage
Simply run the bing-wallpaper.sh script from the terminal.
The script downloads today's Bing wallpaper.
./bing-wallpaper.sh
❓ Available options
To display detailed help:
./bing-wallpaper.sh --help
Usage
Usage: bing-wallpaper.sh [options] bing-wallpaper.sh -h | --help bing-wallpaper.sh --version⚙️ Options
-f --force- Force download. Overwrites the file if it already exists.
-s --ssl- Communicates with bing.com via SSL connection.
-b --boost- Boost mode. Try to get the last
image. -q --quiet- Do not show log messages.
n --filename- The name of the downloaded image. Defaults to the original Bing file name.
-p --picturedir- Full path to the download folder.
- Creates it automatically if it does not exist.
- Default:
-r --resolution- The resolution of the downloaded image.
- Supported resolutions: UHD UHD 1920x1200 1920x1080 800x480 400x240 -w --set-wallpaper Sets the downloaded image as wallpaper on
- (currently only macOS supported)
-h --help- Show help
--version- Print version
🧩 KDE setting
To install KDE wallpaper slideshow:
git clone https://github.com/Pucur/bing-wallpaper-kde.git
Then set the wallpaper to use the new slideshow.
🔄 Auto Run Setup
To make the script run regularly:
Startup programs
- Open the KDE HUD
- Search and: "Startup applications"
- Add the following script:
bing-random-pic.shorbing-wallpaper.sh
If you want, I will also be happy to help you how to:
- automate with cron
- as a systemd service run
- or make a completely native wallpaper slideshow in KDE 👍
The code:
2026-05-07 10:48:56.380196+02
Wayland screensaver
This handy little Bash script listens for screen saver inhibit events under Wayland and automatically stops or restarts swayidle accordingly.
When something "blocks" the screen saver (such as a video player or presentation), the script stops swayidle so the screen doesn't lock or go to sleep. When the ban is removed, it restarts swayidle with the preset timings.
Tested on:
- Arch Linux 6.17.9-arch1-1
- KDE Plasma 6.5.4
- kwin
Notes on swayidle about how it works
About half a year ago, I didn't know much about how swayidle works, but now I feel like I've fully understood its behavior.
Sometimes the screensaver starts up a bit strangely, or doesn't activate exactly when you expect it to — but that's not the fault of the script, it's simply the way swayidle works. its peculiarity.
For example:
- If Chrome is open and some media player is running in the background (on another tab),
swayidledoes not start counting the inactivity time, because it perceives it as an active process. - It only starts timing when you minimize the window to the taskbar.
A GameMode inhibit works differently:
- Although GameMode also uses the inhibit function, it does not affect the operation of
swayidle. -
swayidlecontinues to count the inactivity time even if a game is running in full screen — which I think is a particularly good solution.
Hence the previous "kill swayidle in all cases" approach was not really appropriate.
This script went through several hours (actually several days... but don't tell my wife that 😄) of testing. Hopefully, this version will eliminate the problems of the previous script.
If you still find a bug, feel free to report it in the Issues section!
👷🏼 Operation
The script:
- Monitors the
InhibitandUnInhibitDBus signals via theorg.freedesktop.ScreenSaverinterface. 🏞️ 🎮 💻
On UnInhibit event
- Restarts
swayidlein proper mode 🔓
Additional features
- Continuously monitors custom apps and GameMode activity 📊
- If custom app or GameMode runs:
- only screensaver mode is active 📦
- If none is running and no other inhibits:
- full mode is activated (screensaver + sleep mode) 🏞️
- Log:
- state changes
- inhibit/uninhibit events to the terminal 📋 required:
bashdbus-monitor- (part of the (code>dbus package)
swayidle- (Wayland idle manager)
xscreensaver-command- (to activate the screensaver, optional)
🧩 Install dependencies
Arch / Manjaro (pacman)
sudo pacman -S xscreensaver xscreensaver-extras xscreensaver-gl xscreensaver-data xscreensaver-data-extra swayidle
Fedora (dnf)
sudo dnf install xscreensaver xscreensaver-extras xscreensaver-gl xscreensaver-gl-extra xscreensaver-data-extra swayidle
CentOS / RHEL (yum)
sudo yum install xscreensaver xscreensaver-extras xscreensaver-gl xscreensaver-gl-extra xscreensaver-data-extra swayidle
Debian / Ubuntu (apt)
sudo apt install xscreensaver xscreensaver-data xscreensaver-gl xscreensaver-gl-extra xscreensaver-data-extra swayidle
The code:
2026-05-07 10:42:55.969553+02
Disable screensaver redshift at full screen
Features
- Automatically turn on and off the screensaver depending on whether VLC is running or not
- Automatically turn on and off Redshift depending on whether VLC is running or not
- Optional:
- If you are mirroring your screen to a TV and want to turn off your monitor while watching a movie, you can set this up
- On all UNIX-like systems may work
Required packages
Python packages
System packages
(For Redshift support)
(For screensaver support)
Autostart
Run:
as a user, or add it to the autostart applications.
Then add this line:
2026-05-07 10:25:38.37454+02
Unique x11 screensaver manager
ScreenSaverOnPopOS-Ubuntu-Debian
This is a simple script that automatically turns on the screensaver when no full-screen application is running.
Features
- By default, if you do not use the computer for 2 minutes, the screensaver will appear
- If you remain inactive for 15 minutes, the computer will lock itself
- If there is no activity for 30 minutes, the computer will go into sleep mode
Required packages
This project requires the following packages:
xfce4-screensaver- (I use this because it has a nicer login screen than
xscreensaver) xdg-utilsxprintidle
2026-05-07 10:11:40.559162+02