Incessant tinkerer since the 70’s. Staunch privacy advocate. SelfHoster. Musician of mediocre talent. https://soundcloud.com/hood-poet-608190196

  • 19 Posts
  • 453 Comments
Joined 8 months ago
cake
Cake day: March 24th, 2025

help-circle




  • Probably about the time BBS became more popular. I guess there was arpnet, and all these nets, mostly for science, academics, or governmental. Then they essentially rolled it all into one and viola! The internet was born. (It’s a bit more involved) I’ve hosted BBS, forums, chats, irc, a fully licensed/automated internet radio station with live shows with requests et al, <deep breath> services, websites, you name it.

    Unfortunately, my brain is shit now, and I’ve forgotten so much. So, sometimes I have to re-learn on a cyclical basis. Plus, the technology is moving now at such a blinding speed, what I did even 5 years ago is old school. Needless to say, I keep copious notes. Somebody is gonna go through all my stuff when I’m gone and think ‘What the devil? This looks like some weird kind of manifesto in some sort of long forgotten code.’ LOL


  • Do you have any tutorials or guides on this handy?

    Now that’s a deeeeep rabbit hole. I tend to go overboard on hardening and security, however, one good place to start is installing Lynis and run a scan. Lynis will spit out a rather extensive list of areas you need to harden or adjust and a score for your server. It will also give links where you can go and read up on the specific item in question. Now, not every one of the bullets in the list will apply, but you should give each careful consideration. Lynis is Free and Open Source Software (FOSS).

    I ran a scan just for demonstration purposes so you can see what the end results are. This is just a snippet:

    spoiler
      * Configure minimum password age in /etc/login.defs [AUTH-9286]
          https://cisofy.com/lynis/controls/AUTH-9286/
    
      * Configure maximum password age in /etc/login.defs [AUTH-9286]
          https://cisofy.com/lynis/controls/AUTH-9286/
    
      * Default umask in /etc/login.defs could be more strict like 027 [AUTH-9328]
          https://cisofy.com/lynis/controls/AUTH-9328/
    
      * To decrease the impact of a full /home file system, place /home on a separate partition [FILE-6310]
          https://cisofy.com/lynis/controls/FILE-6310/
    
      * To decrease the impact of a full /tmp file system, place /tmp on a separate partition [FILE-6310]
          https://cisofy.com/lynis/controls/FILE-6310/
    
      * To decrease the impact of a full /var file system, place /var on a separate partition [FILE-6310]
          https://cisofy.com/lynis/controls/FILE-6310/
    

    Be mindful of where you get your hardening tutorials. There are hundreds of thousands out there. I would stick with authoritative sources.

    ETA: I would also recommend reading up on Cloudflare Tunnels/ZeroTrust. I know some people are iffy about Cloudflare and I see their points. It’s worth a read in my opinion.



  • crontab

    Hmmmm…

    systemctl status cron

     cron.service - Regular background program processing daemon
         Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)
         Active: active (running) since Wed 2025-11-12 17:09:55 UTC; 1 day 2h ago
           Docs: man:cron(8)
       Main PID: 996 (cron)
          Tasks: 1 (limit: 47901)
         Memory: 358.5M
            CPU: 59.110s
         CGroup: /system.slice/cron.service
                 └─996 /usr/sbin/cron -f -P
    

    I’ll dick around with it some more. I don’t want to hammer you right in the middle of your promo.


  • irmadlad@lemmy.worldtoSelfhosted@lemmy.worldCr*nmaster 1.5.0 - Major update
    link
    fedilink
    English
    arrow-up
    12
    arrow-down
    1
    ·
    edit-2
    1 day ago

    First, thank you so much for including screenshots on your github. I am a visual kind of guy, and knowing what the WUI looks like really helps sell the app. I am immeasurably disappointed when devs do not include, at the very least, a screen shot of the WUI. Then I have to do a image search, and sometimes there just aren’t any. It just seems like a menial task to snap a few shots and upload them. But then again, I’m not a published dev. Just my two cents.

    Anyways, I have this on my dashboard. I am sure I have something misconfiguration or something missing permissions. To do a quick test run:

    spoiler
    • Create your first task

    • User is root

    • Schedule: 0 6 * * *

    • I’m using ‘Check Disk Space’: bash /volume1/docker/cronmaster/scripts/check-disk-space.sh

           # Check disk space
           # Alert if disk usage is above 90%
      
           DISK_USAGE=$(df -h / | tail -1 | awk '{print $5}' | sed 's/%//')
      
           if [ $DISK_USAGE -gt 90 ]; then
           echo "Disk usage is ${DISK_USAGE}%" | mail -s "Disk Space Alert" admin@example.com fi
      
    • Gave it a description: Check Disk Space

    • Click ‘Create Task’

    • Receive error: ‘Failed to create cron job’

    I am using the provided docker compose. Full Docker logs are full of errors. LOL:

    spoiler
    at genericNodeError (node:internal/errors:984:15)
    at wrappedFn (node:internal/errors:538:14)
    at ChildProcess.exithandler (node:child_process:422:12)
    at ChildProcess.emit (node:events:524:28)
    at maybeClose (node:internal/child_process:1104:16)
    at ChildProcess._handle.onexit (node:internal/child_process:304:5)
    at Process.callbackTrampoline (node:internal/async_hooks:130:17) {
    

    
    code: 127, killed: false, signal: null, cmd: nsenter -t 1 -m -u -i -n -p sh -c "echo 'MCA2ICogKiAqIC92b2x1bWUxL2RvY2tlci9jcm9ubWFzdGVyL3NjcmlwdHMvY2hlY2stZGlzay1zcGFjZS5zaAo=' | base64 -d | crontab -u root -", stdout: ‘’, stderr: ‘sh: 1: crontab: not found\n’ } Error writing host crontab for user root: Error: Command failed: nsenter -t 1 -m -u -i -n -p sh -c “echo ‘MCA2ICogKiAqIC92b2x1bWUxL2RvY2tlci9jcm9ubWFzdGVyL3NjcmlwdHMvY2hlY2stZGlzay1zcGFjZS5zaAo=’ | base64 -d | crontab -u root -” sh: 1: crontab: not found at genericNodeError (node:internal/errors:984:15) at wrappedFn (node:internal/errors:538:14) at ChildProcess.exithandler (node:child_process:422:12) at ChildProcess.emit (node:events:524:28) at maybeClose (node:internal/child_process:1104:16) at ChildProcess._handle.onexit (node:internal/child_process:304:5) at Process.callbackTrampoline (node:internal/async_hooks:130:17) 
    code: 127, killed: false, signal: null, cmd: `nsenter -t 1 -m -u -i -n -p sh -c "echo ‘MCA2ICogKiAqIC92b2x1bWUxL2RvY2tlci9jcm9ubWFzdGVyL3NjcmlwdHMvY2hlY2stZGlzay1zcGFjZS5zaAo=’ base64 -d | crontab -u root -"`, stdout: ‘’, stderr: ‘sh: 1: crontab: not found\n’
    Error executing host crontab command: Error: Command failed: nsenter -t 1 -m -u -i -n -p sh -c “echo ‘MCA2ICogKiAqIC92b2x1bWUxL2RvY2tlci9jcm9ubWFzdGVyL3NjcmlwdHMvY2hlY2stZGlzay1zcGFjZS5zaAo=’ | base64 -d | crontab -u root -” sh: 1: crontab: not found at genericNodeError (node:internal/errors:984:15) at wrappedFn (node:internal/errors:538:14) at ChildProcess.exithandler (node:child_process:422:12) at ChildProcess.emit (node:events:524:28) at maybeClose (node:internal/child_process:1104:16) at ChildProcess._handle.onexit (node:internal/child_process:304:5) at Process.callbackTrampoline (node:internal/async_hooks:130:17) 
    code: 127, killed: false, signal: null, cmd: `nsenter -t 1 -m -u -i -n -p sh -c "echo ‘MCA2ICogKiAqIC92b2x1bWUxL2RvY2tlci9jcm9ubWFzdGVyL3NjcmlwdHMvY2hlY2stZGlzay1zcGFjZS5zaAo=’ base64 -d | crontab -u root -"`, stdout: ‘’, stderr: ‘sh: 1: crontab: not found\n’
    Error writing host crontab for user root: Error: Command failed: nsenter -t 1 -m -u -i -n -p sh -c “echo ‘MCA2ICogKiAqIC92b2x1bWUxL2RvY2tlci9jcm9ubWFzdGVyL3NjcmlwdHMvY2hlY2stZGlzay1zcGFjZS5zaAo=’ | base64 -d | crontab -u root -” sh: 1: crontab: not found at genericNodeError (node:internal/errors:984:15) at wrappedFn (node:internal/errors:538:14) at ChildProcess.exithandler (node:child_process:422:12) at ChildProcess.emit (node:events:524:28) at maybeClose (node:internal/child_process:1104:16) at ChildProcess._handle.onexit (node:internal/child_process:304:5) at Process.callbackTrampoline (node:internal/async_hooks:130:17) 
    code: 127, killed: false, signal: null, cmd: `nsenter -t 1 -m -u -i -n -p sh -c "echo ‘MCA2ICogKiAqIC92b2x1bWUxL2RvY2tlci9jcm9ubWFzdGVyL3NjcmlwdHMvY2hlY2stZGlzay1zcGFjZS5zaAo=’ base64 -d | crontab -u root -"`, stdout: ‘’, stderr: ‘sh: 1: crontab: not found\n’
    Error executing host crontab command: Error: Command failed: nsenter -t 1 -m -u -i -n -p sh -c “echo ‘MCA2ICogKiAqIC92b2x1bWUxL2RvY2tlci9jcm9ubWFzdGVyL3NjcmlwdHMvY2hlY2stZGlzay1zcGFjZS5zaAo=’ | base64 -d | crontab -u root -” sh: 1: crontab: not found at genericNodeError (node:internal/errors:984:15) at wrappedFn (node:internal/errors:538:14) at ChildProcess.exithandler (node:child_process:422:12) at ChildProcess.emit (node:events:524:28) at maybeClose (node:internal/child_process:1104:16) at ChildProcess._handle.onexit (node:internal/child_process:304:5) at Process.callbackTrampoline (node:internal/async_hooks:130:17) 
    code: 127, killed: false, signal: null, cmd: `nsenter -t 1 -m -u -i -n -p sh -c "echo ‘MCA2ICogKiAqIC92b2x1bWUxL2RvY2tlci9jcm9ubWFzdGVyL3NjcmlwdHMvY2hlY2stZGlzay1zcGFjZS5zaAo=’ base64 -d | crontab -u root -"`, stdout: ‘’, stderr: ‘sh: 1: crontab: not found\n’
    Error writing host crontab for user root: Error: Command failed: nsenter -t 1 -m -u -i -n -p sh -c “echo ‘MCA2ICogKiAqIC92b2x1bWUxL2RvY2tlci9jcm9ubWFzdGVyL3NjcmlwdHMvY2hlY2stZGlzay1zcGFjZS5zaAo=’ | base64 -d | crontab -u root -” sh: 1: crontab: not found at genericNodeError (node:internal/errors:984:15) at wrappedFn (node:internal/errors:538:14) at ChildProcess.exithandler (node:child_process:422:12) at ChildProcess.emit (node:events:524:28) at maybeClose (node:internal/child_process:1104:16) at ChildProcess._handle.onexit (node:internal/child_process:304:5) at Process.callbackTrampoline (node:internal/async_hooks:130:17) 
    code: 127, killed: false, signal: null, cmd: `nsenter -t 1 -m -u -i -n -p sh -c "echo ‘MCA2ICogKiAqIC92b2x1bWUxL2RvY2tlci9jcm9ubWFzdGVyL3NjcmlwdHMvY2hlY2stZGlzay1zcGFjZS5zaAo=’ base64 -d | crontab -u root -"`, stdout: ‘’, stderr: ‘sh: 1: crontab: not found\n’

    Like I said, I’m sure I’ve misconfigured something, not taken into account something, or otherwise, as is my modus operandi, just screwed everything up and need to restart the deployment process a few more times to get it right. I’ll keep whacking away at it. Looks like a solid cron scheduler with a very pleasing WUI.

    ETA: In regards to all the info and stats in the left hand column, everything there looks right




  • This isn’t a solution to your issue, but a suggestion:

    Since you are already using Cloudflare for your domain name, and I assume they gave you some nameservers to use, why not explore the Cloudflare Tunnels/ZeroTrust? Cloudflare Tunnels don’t care if you are behind a dynamic IP, or cgnat. Cloudflare is unconcerned with what ports you open on your router/firewall. You don’t even have to adjust your UFW firewall settings. Cloudflare punches through all that with a tunnel in to your server and tunnel out to the internet.

    Admittedly, it did take me a couple tries to get everything worked out, but once I did, it’s easy peasy from there. If you decide this route, I’d be more than happy to clean up some of my notes and share them with you. Might help…might not. LOL


  • These things get hella filthy inside.

    LOL Reminds me of when my Jack Russel was a pup, training him to poop outside. Well, one day early in his training, he decided to poop under the dinning room table and I didn’t see it. Turned the vaccum loose, and sure enough, it found the poop, smeared it all over the floors and made a complete mess of the guts. I spent the day with a toothbrush and some cleaner. So, yeah…can confirm they do get filthy.


  • add an override for the docker.service file

    Can you elaborate? I made the post hoping to save someone a couple hours banging their head on the keyboard like I did. LOL

    So something like :

    sudo nano /usr/lib/systemd/system/docker.service

    What was the format of your entry to specify a minimum api version 1.24? I’m curious and always down to learn new tricks.

    'presh





  • Another worth while consideration is heat generation.

    Indeed. I put my rack in the closet. Cut in a 500 cfm inline exhaust fan to the attic. Then I wired it to a thermostat. That way it’s not constantly sucking 500 cfm of AC into the attic in the summer and heat in the winter. Then sound bat and insulation to keep the drone of the fans to zero with the door closed. Seems to work nicely. But yeah, when you step up to enterprise equipment and legacy at that, associated cost are worth considering.