Skip to content

docs: document fallback pages provided by the service#17

Open
MikkelHebel wants to merge 1 commit into
ctfpilot:developfrom
Brunnerne:docs/16/document-fallback-pages
Open

docs: document fallback pages provided by the service#17
MikkelHebel wants to merge 1 commit into
ctfpilot:developfrom
Brunnerne:docs/16/document-fallback-pages

Conversation

@MikkelHebel

Copy link
Copy Markdown
Member

Summary

Adds a ## Pages section to the README documenting every page this service can serve, what triggers each one, and what it looks like.

  • Lists all generated pages with their title and intended use
  • Documents the two client-side states behind every page (valid challenge-instance subdomain "loading" state with auto-reload polling; anything else gets a generic "Invalid URL!" message)
  • Adds screenshots for each page/state under docs/images/, captured by running generator.py

This closes #16

@MikkelHebel MikkelHebel self-assigned this Jul 4, 2026
@github-actions

github-actions Bot commented Jul 4, 2026

Copy link
Copy Markdown

All Contributors have signed the CLA. Thank you for your cooperation!
Posted by the CLA Assistant Lite bot.

@MikkelHebel

Copy link
Copy Markdown
Member Author

I have read the CLA Document and I hereby sign the CLA

@MikkelHebel MikkelHebel changed the base branch from main to develop July 4, 2026 20:03
Comment thread README.md
Comment on lines +25 to +27
Each page is generated from a file in [`src/content`](./src/content) (see [Development](#development) below) and is served as static HTML behind a reverse proxy, similarly to [`error-fallback`](https://github.com/ctfpilot/error-fallback). Which page is shown is determined by whichever HTTP status code the proxy maps to this service.

Unlike `error-fallback`, the page content is hidden until client-side JavaScript decides which of two states to show, based on whether the request's subdomain matches the expected `<slug>-<16 hex chars>` challenge-instance pattern:

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think error-fallback needs to be mentioned in this README.

However, it is very nice to have the touch on JS only - It also highlight the missing information to users with disabled Javascript.

Comment thread README.md
Comment on lines +42 to +58
<details>
<summary>Preview of each page (valid subdomain state)</summary>

| | |
| --- | --- |
| **Index** ![Index page](docs/images/index.png) | **404** ![404 page](docs/images/404.png) |
| **502 Bad gateway** ![502 page](docs/images/502.png) | **503 Starting** ![503 page](docs/images/503.png) |
| **504 Gateway timeout** ![504 page](docs/images/504.png) | |

</details>

<details>
<summary>Preview of the "Invalid URL" state (shown on every page for a non-matching subdomain)</summary>

![Invalid URL page](docs/images/wrong-domain.png)

</details>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be good to mention, that the screenshot are from the light mode, and dark mode is active if the system preffers dark.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Document pages provided by the Fallback

2 participants