I created a tool that’s easy to set up and gives you fast and beautiful web UI and TUI from a single Go binary.

It can serve both as a cron replacement, or just as a cron supplement - let’s say, to version control your cron tasks in a small team. It also has an alert system that allows you to send slack/discord/telegram/email when something bad happens.

I want your feedback. You can help me shape this product into something people will find pleasant to use.

This daemon is copyleft GPL-3.0-or-later - completely free to use.

RunWisp is currently in pre-release phase but is slowly approaching its v1.0 stable release.

Website: https://runwisp.com/

GitHub repo: https://github.com/runwisp/runwisp - feel free to open an issue!

Quick start: https://docs.runwisp.com/getting-started/quick-start/

AI Disclosure

  • Design - Hint
  • Implementation - Pair
  • Testing - Assisted
  • Documentation - Pair
  • Review - Hint
  • Helix 🧬@feddit.org
    link
    fedilink
    English
    arrow-up
    8
    arrow-down
    1
    ·
    5 days ago

    Looks good, but kind of superfluous if you just use systemd timers, lol

    Systemd timers are the modern way of doing it which gives you everything you coded this tool for, logs and whatnot, in the journal.

    And you can run them in a web UI like cockpit aswell.

    This might be interesting in a business setting but lacks ACLs and user management in general.

    It’s probably also quite easy to hack the system with it if you can inject some malicious scripts.

    • WhyJiffie@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      3
      arrow-down
      1
      ·
      5 days ago

      I generally like some things that syatemd gives, but is there an easier way to create timed automations with systemd timers?

      with cron, its just a single line with the recurrence pattern and the command. with systemd, you have to create a timer unit file with several lines, a service unit file with several lines, put them in the right directory, reload systemd, enable the timer. timers are not difficult, but much more convoluted than the crontab. if you have to make multiple pairs, or update something in them, it gets old fast.

      • Helix 🧬@feddit.org
        link
        fedilink
        English
        arrow-up
        3
        ·
        4 days ago

        single line

        here’s a single line for you which creates a one-shot service+timer in one go, suspending the system in 4 hours:

        systemd-run --on-active=4h --unit=suspend-after-4h /usr/bin/systemctl suspend
        

        If you want it to run repeatedly, simply replace --on-active with --on-calendar="*-*-* 04:00:00" for example.

        • WhyJiffie@sh.itjust.works
          link
          fedilink
          English
          arrow-up
          3
          ·
          4 days ago

          thank you. this creates it, but is there a way to view or edit its current configuration in a similar format? and this is not persisted, is it?

          • Helix 🧬@feddit.org
            link
            fedilink
            English
            arrow-up
            1
            ·
            3 days ago

            If you inspect the generated timer you see the same format in the OnCalendar line.

            What do you mean by persisted? The service and timer will both be there as long as the timer doesn’t end. Which it won’t in my example.

            If you want to copy it for later reference, you can simply copy the files.

            • WhyJiffie@sh.itjust.works
              link
              fedilink
              English
              arrow-up
              1
              ·
              3 days ago

              If you inspect the generated timer you see the same format in the OnCalendar line.

              but without the command

              What do you mean by persisted? The service and timer will both be there as long as the timer doesn’t end. Which it won’t in my example.

              I mean saved to a file so that it will still be there after reboot

              • Helix 🧬@feddit.org
                link
                fedilink
                English
                arrow-up
                1
                ·
                edit-2
                3 days ago

                but without the command

                Yeah, but that’s an easy one to parse, if you really need it.

                I’m pretty sure if you use OnCalendar it will still be there after a reboot. Let me check.

                EDIT: oh damn!! It doesn’t persist on reboots. Sorry for this oversight.

      • runwisp_com@lemmy.worldOP
        link
        fedilink
        English
        arrow-up
        1
        arrow-down
        2
        ·
        5 days ago

        if cron + logger covers your needs, you should keep that going. RunWisp is for cases where you also want searchable run history with retention and rotation, failure alerts, manual triggering and service supervision, all in one place without assembling those pieces yourself.

    • runwisp_com@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      2
      arrow-down
      1
      ·
      5 days ago

      If systemd timers, journald and cockpit already cover your needs, RunWisp probably isnt for you. RunWisp is aimed at people who want portable TOML-defined tasks and services with unified history, logs and alerts. you’re right that ACLs are currently missing, but access is protected by password authentication and the UI can only trigger commands already defined on the host.