this post was submitted on 10 Aug 2023
111 points (95.9% liked)

Selfhosted

40041 readers
705 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 1 year ago
MODERATORS
 

After a few conversations with people on Lemmy and other places it became clear to me that most aren't aware of what it can do and how much more robust it is compared to the usual "jankiness" we're used to.

In this article I highlight less known features and give out a few practice examples on how to leverage Systemd to remove tons of redundant packages and processes.

And yes, Systemd does containers. :)

you are viewing a single comment's thread
view the rest of the comments
[–] Atemu@lemmy.ml 2 points 1 year ago (1 children)

My only complaint is it's a bit verbose. I'd rather have it as an option inside the .service file. The .timer requires some boilerplate like [Unit].description (it... uh... triggers a service. that's the description), and WantedBy=timers.target.

This can be solved through abstraction and automation.

In NixOS for example, you can declare a service that runs an arbitrary script every day like this:

{
  systemd.services.your-service-here = {
    script = "echo 'Hello, world!'";
    startAt = "daily";
  };
}

This automatically creates a service file with the script in its ExecStart and an accompanying timer which runs daily and is part of the timers.target.

[–] maor@lemmy.org.il 2 points 1 year ago

Yep, I manage my servers and local machine with Ansible so I abstracted it with a role. This is indeed not that bad of a con because it's still plaintext so automation is easy, but it's still a minor issue ;)