Wednesday, November 16, 2022

How I manage SetCronJob servers

In the past few months, I've been working on rebuilding Clustermin to help me manage multiple servers and deploy SetCronJob to DigitalOcean servers.

Six years ago, I created Clustermin and made it into a shell script storage. All server installation and configuration commands were stored as Twig bash scripts in the database. Then they were run on one or multiple servers on-demand and on webhook requests.

It worked fine for years, but it couldn't catch up with my needs.

The framework and libraries it was built on became too old and deprecated. I need to either do a big upgrade or try alternative solutions.

So I tried RunCloud, Cleavr, and Laravel Forge. I couldn't even get them to deploy SetCronJob to one server.

Then I used Ploi for a few months for my side project, and it worked great. With a nice user interface, too.

But it's limited. Everything is at the server level. If I need to add another server to the group, it takes a lot of work. Add a site, add multiple cronjobs, add daemons, add a new SSH key to my Bitbucket repo, etc. Many necessary features are behind a paywall too.

So, I decided to rebuild my old project Clustermin.

The web server cluster

Currently, these features are already implemented:

Cluster management (cluster = group of servers)

Most things are at the cluster level. Add a site to a cluster, and it'll be deployed to all servers. Add a server to a cluster, and it deploys all sites along with their cronjobs, daemons, and SSL certificates. If a server cluster is too early for you, just add one server and that's it.

Server installation and configuration

Services installed and monitored

Your servers will have PHP 8.1, Nginx, Redis, Memcached, and Supervisor, ready to deploy Symfony/Laravel/PHP apps.

Push to deploy, zero downtime

You'll get a deploy URL to add to your Git repo's webhook. It'll deploy your site to multiple servers, one by one, and stops if it encounters any problem with deployment. It uses an atomic switch with symlink switching, so no PHP FPM reload (and downtime) is needed.

Server status and service status monitoring

Clustermin monitors your server CPU, RAM, and disk usage every minute, as well as system service status (cron, nginx, supervisor, php8.1-fpm, redis-server, ufw, ssh, fail2ban, etc).

SSL certificates management

Free Let's encrypt SSL certificates will be deployed to all servers with just one click. You can also add your own SSL certificates too.

File manager

File manager

One of the most used features in the previous version of Clustermin. It's really handy when you need to quickly check your files and see what the heck happened with your deployment.

Redis master-replica cluster

You can also deploy a Redis cluster too. Clustermin supports master-replica setup only. When a new server is added to the Redis cluster, it'll automatically replicate the current primary server. I intend to add other types of server clusters soo (e.g. load balancer, database cluster, etc).


If you're interested in Clustermin, you can register an account here. Currently, it's free for up to 4GB total server memory (e.g. 4 small servers with 1GB RAM are free).

Tuesday, August 16, 2022

Plans and pricing updates


I've updated SetCronJob's plans and pricing.

New account plans, new terms

There are 3 new plans added, starting at $5/month for 1 user (Indie), $10/month for 5 users (Team), and $20+/month for 10+ users (Business).

I also added daily execution minutes and recurring cronjobs limit. It'll consider the cron timeout settings, and you can increase the cron timeout to 720 minutes (12 hours) in exchange for raising the daily execution minutes occupied. It also limits the max number of recurring cronjobs to 1% of the daily execution minutes. It won't count the disabled and one-time cronjobs.

A new feature is also added to the new plan: Connect from a single server.

Connect from a single server
There will be no more unlimited team members, and only the Business plan can add more users at $1/month/user. The existing Team accounts also have a new limit of 100 users (team members).

Does this change affect my account and cronjobs?

All users are grandfathered: you aren't required to update your account, and you can continue using your account like usual. However, the old plans won't be available any more. You must choose a new plan if you reach the limit of your existing plan, or if you didn't renew your plan in time.

Why is this happening?

You may see clearly that SetCronJob is raising its prices.

Initially, SetCronJob started as a side project, to give an alternative to the limited cron feature of cheap hosting. That's why it was so cheap.

Over time, it evolves, many features were added, and infrastructure was upgraded to make the cron job much more reliable and resilient. You no longer worry about the cron jobs skipped or failed silently. Your cronjobs run at the exact second, for hours. You can see the scheduled executions, check the last execution results, and get notified via multiple channels when a cron job failed. You can manage a large number of cronjobs for several websites and environments, and work together with your team members.

SetCronJob has become a central hub to set up and manage your cronjobs reliably.

When you choose to upgrade your account, your contribution ensures that SetCronJob can continue to be incredibly reliable and useful to your team and business.

Secondly, the server costs have gone up in the last months, and I also added many more servers to process cronjobs. I need to reflect this in the prices today, to help me bring down the cost of processing cronjobs in the future.

Any more changes?

There'll be more changes coming up ahead. If you want to offer feedback and feature suggestions, head to the official subreddit.

Monday, July 11, 2022

SetCronJob July 2022 Update


Here are some changes and updates at SetCronJob in July 2022:

New servers are added

As announced a month ago, 6 new servers are processing your cronjobs right now. If you haven't added the new IP addresses to your firewall's whitelist, you should do it now.


Menu and forms and updated

I've replaced the Account menu with the My Profile menu and expanded all forms so you can now update your name, email and password much faster. Please note that the API token displayed is for your own account. If you want to get the API token to manage your team's cronjobs, please contact the account owner to get one.


Account deletion

You can now delete your own account completely. All data will be removed. It's not reversible. You will be able to register again using the same email address.


Team invitation

An invitation is sent to your new team member.

Previously, a team member must register their account first before they can be added to a team. Now the team owner/admins can just add a new email address, and they'll invite a new team member to join their team account. The new team member just needs to confirm their email, and they'll be authenticated and authorized to use the team account immediately.


Monthly subscription

You can now create a monthly subscription. It'll be 1/10 the price of a yearly subscription. At the Billing tab, click Monthly pricing and Choose this plan.

The remaining days will decrease if you switch from yearly to monthly billing.

Wednesday, June 22, 2022

Free upgrade from Silver to Gold plan


The Silver plan has been there for over 10 years and hasn't been offered for new users for 4 years. It's such a long time, and I'm really glad that SetCronJob has been continuously offering value for its Silver users.

I believe, after years, now is a good time to say goodbye to Silver plan.

Free upgrade from Silver to Gold plan for the remaining time

When you log in to your account, you'll see a link to upgrade from Silver to Gold, for free. Clicking the link and confirming will update your account plan, price, and daily executions limit to Gold's, all free of charge. The expiry date is kept intact. Your cronjobs will continue to work.

What you will get with the Gold plan: More daily executions (from 3,600 to 8,000), longer cron timeout (300 to 1800 seconds), more cron logs (from 20 to 50 results), and separate failure logs (10 failures).

If you have a PayPal subscription, it'll be canceled. If you have a Paddle subscription, it'll be updated without extra charges.

After the upgrade, it'll be $24/year from the next payment date.

The free upgrade is available until July 22, 2022 (in 1 month).

From July 5 - July 12, all existing PayPal subscriptions for Silver plans will be canceled.

After July 22, you can not renew your Silver plan.

The renewal link for the Silver plan will be removed. You can still keep using your Silver account until its expiry date. But you can only renew your account by upgrading your account to a higher plan.


Again, I thank you for trusting and using SetCronJob for years. I hope you find the service useful for you.

If you have any questions, please email me.

Best regards,
Nguyen An Thuan.

Saturday, June 11, 2022

6 new servers added


I've added 6 new servers to process cronjobs. They will start sending HTTP requests to your cronjob URLs from July 11, 2022 (in 1 month).

If you are using a firewall, please make sure our IP addresses are whitelisted. Here's the list of new IP addresses:

And IPv6 addresses:


You can always check the up-to-date IP list here.

If you want to receive email notifications when SetCronJob's IP changes, please click on your profile widget > Profile, click Update profile, and check the box Receive email notifications about SetCronJob IP change.

Wednesday, April 20, 2022

Renew your account by card / PayPal


You can now create a subscription to automatically renew your account by card / PayPal. The payments will be processed by Paddle, a merchant of record. Paddle will handle all the payments, taxes, receipts, and invoices. They'll also send email notifications about upcoming charges, failed payments, etc.

You can now update your account plan at any time without changing your payment method. Both SetCronJob and Paddle will prorate the subscription costs, and you can see when the next payment date is when you update your account plan.

You can no longer make one-time payments on our website via PayPal or FastSpring. However, SetCronJob still supports WebMoney, PayPal, BitCoin, and USDT. Please contact me if you want to make manual payments.

Existing PayPal subscriptions will be kept intact. If the PayPal subscription is canceled, you can only create new ones via Paddle.

If you encounter any problems with SetCronJob, please let me know.

Best regards,
Nguyen An Thuan.

Friday, April 1, 2022

SetCronJob April 2022 Update

Hello there,

I've made some updates to SetCronJob, and many more will come.

"Notification on executions" and "Notification every X failures" are deprecated

SetCronJob has stopped sending notifications on executions, and now we only have one option left:

Notify me when cron job starts failing

When you enable notifications, we'll send an email when your cronjob starts failing. Next consecutive failures won't trigger email notifications. If another email notification was triggered within 8 hours (e.g. your cron job is okay, then starts failing again), then we won't send the email and increase the failure sensitivity instead.

Cron output and URL are removed from emails

I have removed cron output and URL from notification emails. The output is user-generated and should not be trusted to be included in the email body.

Notification on output matched is updated

SetCronJob will no longer send notifications when your script output matched a pattern. Instead, the cronjob execution will be considered a failure.

Failed if contains text

Remove minimum cron interval limit and other feature limits

You can now set cronjobs to run every 30, 20, 10, or even 5 seconds, as long as it's still in your account daily cron execution limit. Customized HTTP headers, Single Instance, and cron logs graph/search are also now available in all account plans.


I'll update this blog post when there's some new update in April 2022.

Sunday, March 20, 2022

SetCronJob March 2022 update

 Hello there,

You may notice that the web user interface at SetCronJob has changed. I have made multiple updates in both backend and frontend, mainly in upgrading our libraries/framework.

There will also be multiple changes from here on. Here is the list of changes you should know:

Compromised Passwords check

I've added another check when registering and changing your account password. It will ensure that your password is not included in any of the public data breaches tracked by haveibeenpwned. It won't send your raw passwords, only some first bytes of the hashed password will be checked.

Email confirmation is now required

I allowed unverified users to test our service before confirming their email addresses. However, it confused users; some even hadn't confirmed their email address before paying for our service, and they won't receive account notifications because of unverified email addresses. It also opens our service to be abused by spammers and fake registration.

Please note that disposable email addresses are not allowed, and will be blocked by our other service IsTempMail.

Social login supports only one Google account

Currently, you can log in to SetCronJob using multiple Facebook and Google accounts. After April 20, 2022, one user can only log in using a Google account. Facebook login is deprecated and will be removed. 

Gold Team accounts are not available.

If you want to add more team members, please upgrade your account to a Platinum or Diamond plan.

API functions server.* are deprecated

The functions server.time, server.timezones, and server.useragent are deprecated and will be removed after April 20, 2022. Please stop using them. If you need them for your use case, please let me know.

DNS Cache is now enabled globally

Our new PHP version supports IPv6 address caching, so I just enabled DNS cache by default. It removes the DNS lookup time and saves a lot of server resources, which makes the service more stable and reliable. When your domain name records change, please visit DNS Table to flush the cache record.

[ March 26 ] Group sorted alphabetically 

Groups are now sorted alphabetically. This applies to the cronjobs table, the cronjob search form, the cronjob edit form, and the team member form (Allowed groups).


If there's any new change, I'll post it on the SetCronJob blog.

Over the years, there have been many changes made to improve SetCronJob, but I didn't keep the blog updated. From now on, I'll try to make at least a monthly update post to this blog, so stay tuned.