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
you are viewing a single comment's thread
view the rest of the comments
[–] 7 points 1 month ago (15 children)

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.

  • source
  • hideshow 15 child comments
  • [–] 2 points 1 month ago (1 child)

    Or just cron that calls a logger works well enough

  • source
  • parent
  • hideshow 1 child comment
  • [–] [S] -1 points 1 month 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.

  • source
  • parent
  • [–] 2 points 1 month ago* (5 children)

    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.

  • source
  • parent
  • hideshow 5 child comments
  • [–] 3 points 1 month ago* (4 children)

    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.

  • source
  • parent
  • hideshow 4 child comments
  • [–] 3 points 1 month ago (3 children)

    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?

  • source
  • parent
  • hideshow 3 child comments
  • [–] 1 point 1 month ago (2 children)

    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.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 1 point 1 month ago (1 child)

    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

  • source
  • parent
  • hideshow 1 child comment
  • [–] 1 point 1 month ago* (last edited 1 month 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.

  • source
  • parent
  • [–] [S] 1 point 1 month ago (6 children)

    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.

  • source
  • parent
  • hideshow 6 child comments
  • [–] 3 points 1 month ago (5 children)

    Yes but... Systemd timers are INI-defined tasks and services with unified history and logs, the alerts can be easily added with any alerting system.

  • source
  • parent
  • hideshow 5 child comments
  • [–] [S] 2 points 1 month ago (4 children)

    yeah, thats fair, systemd + cockpit with alerts can cover pretty much the same ground. What RunWisp brings is the integrated cross-platform package and UX. Nobody is claiming that those underlying capabilities are impossible to assemble elsewhere.

  • source
  • parent
  • hideshow 4 child comments
  • [–] 2 points 1 month ago (3 children)

    But why does it need a cross platform package when systemd is available everywhere? What UX is better than the already existing cockpit?

  • source
  • parent
  • hideshow 3 child comments