Skip to main content


Showing posts from 2024

Poor man's DVR - a linux bash script to capture images from the camera and upload them to a remote server

I wanted to create a very easy "DVR" script for my raspberry PI machine that will take a shot from the camera and upload the photos to a remote server so I can see what is happening in my living room. I created this simple bash Linux command line script to activate the camera, save the photo, add a timestamp and upload it to a remote server. It is running every minute - capturing 5 photos from the webcam every 9 seconds and uploads them to the server using scp. Here is the shell script for a poor man's DVR: #!/bin/bash # repeat 5 times for i in {1..5}; do     # the file name with a datetime stamp     filename=webcam_$(date +%Y%m%d-%H%M%S).jpg       # capture the image from the camera     ffmpeg -f video4linux2 -input_format mjpeg -i /dev/video0 -vframes 1 -frames:v 1 /mnt/ramdisk/$filename     # wait     sleep 9 done # create a latest.jpg image cp /mnt/ramdisk/$filename /mnt/ramdisk/latest.jpg # add the time stamp convert /mnt/ramdisk/latest.jpg -gravity SouthEast -points

Caddy webserver to prevent access from external machines on the network

How to protect your local caddy installation by preventing other machines outside of your localhost and local computer from accessing your device. Create rule: (block_outcoming) {        @denied not client_ip ::1         handle @denied {                 respond "No access"         } }   Then inside your website configuration just add import  block_outcoming   E.g.: :80 {     import block_outcoming     root * /web/html }

Accessing Windows Share (Samba) From Linux (XFCE) using Thunar

In order to access samba (windows share) from Linux XFCE using Thunar file browser you need to: 1. Install samba client sudo apt install smbclient 2. Run: sudo modprobe cifs 3. Open thunar and access the share: smb://IPADDRESS/sharename e.g.: smb:// 4. Type in the username / password in the prompt window Some helpful information:

Caddy web server configuration for rewrite with multiple variables parameters

  http://localwebsite {         # Set this path to your site's directory.         #root * /usr/share/caddy         root * /var/www/website           #makes /course/id/name.html to /course.php?id=id&name=name         @zxp {                 #path_regexp myregex ^/course/(\d+)/([%A-Za-z0-9_-]+)\.html$                 path_regexp myregex ^/course/([^/]+)/([^/]+)\.html$         }         rewrite @zxp /course.php?id={re.myregex.1}&name={re.myregex.2}           # rewrite /course/([^/]+)/([^/]+)\.html /course.php?id={1}&name={2}         # rewrite /course/(\d+)/([A-Za-z0-9_-]+)\.html /course.php?id=$1&name=$2         # rewrite /course/(\w+)/(\w+)\.html /course.php?id={1}&name={2}         #rewrite /course {         #       r ^/(\w+)/(\w+)\.html$         #       to /course.php?id={1}&name={2}         #}         # Enable the static file server.         file_server         # Another common task is to set up a reverse proxy:         # reverse_proxy localhost:8080