Can I schedule my site to display a 404 or maintenance page at a specific time?
You can achieve this by preparing 404 or maintenance static files and sending a deploy request at the specified time.
If you need more advanced control such as scheduled maintenance windows or path-specific access restrictions, consider using KurocoEdge. KurocoEdge supports switching maintenance page display based on schedule settings.
The following explains how to achieve this using the KurocoFront deployment feature.
Preparation
1. Create a ZIP file for deployment
To display a 404 page, create a ZIP file containing only kuroco_front.json (Can I Revert the Deployed Site to Show a 404 Page?).
404_deploy.zip
└── kuroco_front.json
To display a maintenance page, create a ZIP file containing the maintenance HTML file(s) along with kuroco_front.json.
2. Upload the ZIP file
Upload the created ZIP file to KurocoFiles or a similar storage service.
3. Confirm the required deployment information
Refer to "Can I Deploy KurocoFront Without Using GitHub?" and confirm the following information:
- API endpoint (e.g.,
https://sitekey.g.kuroco.app) - KurocoFront domain (e.g.,
sitekey.g.kuroco-front.app) - SHA1 hash of the frontend domain
- Download URL of the ZIP file
- KurocoFront settings token
Sending the deploy request
At the specified time, send a deploy request using a curl command like the following:
endpoint="https://sitekey.g.kuroco.app"
domain="sitekey.g.kuroco-front.app"
hash="****************************************"
storage_url="https://sitekey.g.kuroco-img.app/files/user/deploy_file/404_deploy.zip"
token="************************************"
curl -X POST "${endpoint}/direct/menu/github/" \
-H 'Content-Type: application/json;charset=utf-8' \
-H "X-Kuroco-Auth: token ${token}" \
-d "{\"data\":{\"domain\":\"${domain}\", \"hash\":\"${hash}\",\"storage_url\":\"${storage_url}\"}}"
To restore the site, run GitHub Actions and deploy the linked GitHub artifacts.
Alternatively, you may prepare a ZIP file of the standard build artifacts separately and send a deployment request in the same manner.
Using Kuroco batch processing to execute the deploy request
You can also use Kuroco batch processing to execute the deploy request. Create a batch process, set the execution timing to "daily", and use the date Smarty plugin to check the date/time, allowing the deployment to be executed automatically at the specified time.
Example: Display 404 on a specific date
{* Skip except on the specified date *}
{date var='today' time='now' format='Y-m-d'}
{if $today != '2026-03-15'}
{return}
{/if}
{* Configure variables *}
{assign var="endpoint" value="https://sitekey.g.kuroco.app"}
{assign var="domain" value="sitekey.g.kuroco-front.app"}
{rcms_hash var='hash' data='domain' algo='SHA1'}
{assign var="storage_url" value="https://sitekey.g.kuroco-img.app/files/user/deploy_file/404_deploy.zip"}
{assign var="token" value="****************************************************************"}
{* Configure headers *}
{assign_array var="headers" values=""}
{append var="headers" value="Content-Type: application/json;charset=utf-8"}
{append var="headers" value="X-Kuroco-Auth: token `$token`"}
{* Configure the request body *}
{assign_array var="body" values=""}
{assign_array var="body.data" values=""}
{assign var="body.data.domain" value=$domain}
{assign var="body.data.hash" value=$hash}
{assign var="body.data.storage_url" value=$storage_url}
{* Execute the API request *}
{api
endpoint="`$endpoint`/direct/menu/github/"
method="POST"
headers=$headers
body=$body
var="response"
status_var="status"
}
For detailed instructions on configuring batch execution timing, refer to "Can I schedule batch processing to run at specific dates or weekly?".
Related Documents
Support
If you have any other questions, please contact us or check out Our Slack Community.