Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

standard cron #174

Merged
merged 4 commits into from
Oct 1, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 52 additions & 0 deletions content/issues/2023-10-01-cron.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
---
title: "Notification: Significant changes to cron incoming"
date: "2023-10-01 23:00:00Z"
informational: true
affected:
- "Notifications"
- "diskover"
- "duckdns"
- "feed2toot"
- "freshrss"
- "grav"
- "lychee"
- "nextcloud"
- "rsnapshot"
- "snipe-it"
- "swag"
- "transmission"
- "webgrabplus"
section: issue
---

We've decided to make some changes to how cron is shipped in our images.

## Current state of cron

We have not had a consistent standard. Many of our images do however setup cron the same way. When an application requires cron, we setup crontabs for `abc` or `root` in `/config/crontabs/`. This has allowed users to customize crontabs.

This has required that if we make changes to the image that require changes to crontabs we have had to carefully plan how to make adjustments to existing user files without causing issues with any customizations. It could also mean we are unable to automatically make required changes if user customizations make an automated adjustments impossible. In these cases, users have been required to update crontabs on their own.

As a side note, we also offer our [universal cron mod](https://github.com/linuxserver/docker-mods/tree/universal-cron) that can be applied to add the ability to use cron for both `abc` and `root` in any container.

## Incoming changes

When an application requires cron, we will also no longer setup crontabs for `abc` or `root` in `/config/crontabs/`, unless user customizations to the crontab are required.

Instead, we are internalizing the crontab files. This should make it easier for us to update crontabs when changes to the image require updates to crontabs. It also means users won't have to keep up with changes to crontab requirements that may break their applications.

**IMPORTANT:** We are NOT removing existing crontabs from `/config/crontabs/`, they will simply be ignored unless otherwise noted.

We will continue to offer our [universal cron mod](https://github.com/linuxserver/docker-mods/tree/universal-cron) with a new purpose of making crontabs for `abc` and `root` customizable by setting them up in up `/config/crontabs/` and configuring the cron service to recognize them, essentially restoring the original behavior. This effectively makes the cron mod the only way to customize crontabs.

As a side note, we are also adjusting all existing crontabs we ship to run as `abc` instead of `root`. This improves security and consistency in our images.

### Exceptions

Diskover requires setting your own crontab schedule. The container will now run cron using `/config/crontabs/abc` instead of `/config/crontabs/root`. The `/config/crontabs/root` file is NOT being automatically removed, but will be ignored.

Rsnapshot requires setting your own crontab schedule, and in some cases requires backups to run as root. The container will continue to run cron using `/config/crontabs/root`.

## Timing

You can expect to see these changes merge around November 1st, 2023. An additional post will be made with all of the above information and any updates if anything changes between now and then.