Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
617 commits
Select commit Hold shift + click to select a range
9bb62a1
Fix bug with JSON Doctype #120
Mar 26, 2024
829ae95
feat: add external mozilla observatory tool
GreyXor Mar 27, 2024
3199674
docs: Updates contributors list
liss-bot Mar 31, 2024
8e7cbce
docs: Updates contributors list
liss-bot Apr 7, 2024
1caf6b9
fix: Add darkreader lock meta tag
Myzel394 Apr 8, 2024
013311c
Merge pull request #122 from GreyXor/master
lissy93 Apr 12, 2024
7f53e48
Merge pull request #131 from Myzel394/patch-1
lissy93 Apr 12, 2024
41768c7
docs: Updates contributors list
liss-bot Apr 14, 2024
5d42a73
style: consistency between additional resources descriptions
GreyXor Apr 16, 2024
32a4288
Fix: External links now open in a new tab
bolens Apr 17, 2024
d3e52cd
Update additional page links
bolens Apr 17, 2024
1cbbb5c
Merge pull request #121 from KostLinux/FIX/json-doctype
lissy93 Apr 20, 2024
77e180f
docs: Updates contributors list
liss-bot Apr 21, 2024
7963f63
Merge pull request #135 from bolens/external-links
lissy93 Apr 25, 2024
da4045c
docs: Updates contributors list
liss-bot Apr 28, 2024
f87da47
Merge pull request #133 from GreyXor/master
lissy93 Apr 30, 2024
29b5d5b
Update firewall.js, add QRATOR WAF
n0a May 3, 2024
92e800c
docs: Updates contributors list
liss-bot May 5, 2024
bee557a
Migrate to Astro base
lissy93 May 5, 2024
88fc453
Specify platform
lissy93 May 5, 2024
aa61dd3
Dependencies for Astro
lissy93 May 5, 2024
d4b6abb
Writes configuration file for multi-adapter Astro site
lissy93 May 5, 2024
de45c48
Move assets into /public
lissy93 May 5, 2024
3fe2c01
Configuration for Vite
lissy93 May 5, 2024
4420197
Update path to GUI
lissy93 May 5, 2024
83f672b
Updates configration for Vercel and Typescript
lissy93 May 5, 2024
c9a478c
Convert all API endpoints into ESM modules
lissy93 May 6, 2024
9839efd
Server working with Astro and all API endpoints
lissy93 May 6, 2024
1537465
Send user direct to check page, if self-hosted
lissy93 May 6, 2024
da73810
Improved UX for self-hosted users
lissy93 May 6, 2024
fd070bd
Ignore built files
lissy93 May 7, 2024
cbbf3c8
Update publish directory for Netlify
lissy93 May 7, 2024
20371eb
Update PLATFORM env var
lissy93 May 7, 2024
4cee3e7
Redirect if URL param present on home
lissy93 May 8, 2024
828724e
Adds PM2 for no-crash server
lissy93 May 8, 2024
4efe7b3
Update start command, and remove --prod flag from dev install script …
lissy93 May 8, 2024
698fd40
Rename v1 to web-check-live
lissy93 May 8, 2024
e4e0e6e
Fix correct param name
lissy93 May 8, 2024
acecd2c
Fix link to about docs
lissy93 May 8, 2024
9455dd1
Update condidional for skipping wc homepage for self-hosted users
lissy93 May 11, 2024
e3a9fac
Adds a fly.toml for deploying to fly.io
lissy93 May 11, 2024
dcd62f5
Adds JS fallback for redirection
lissy93 May 11, 2024
cbe6e86
Sets aliases for astro imports
lissy93 May 11, 2024
dc76400
Builds base layout, and head tags
lissy93 May 11, 2024
14df704
docs: Updates contributors list
liss-bot May 12, 2024
0be0a77
Merge pull request #137 from n0a/patch-1
lissy93 May 15, 2024
7295eec
Update firewall.js, add ddos-guard WAF
n0a May 16, 2024
5d4f2ef
Merge pull request #143 from n0a/patch-2
lissy93 May 18, 2024
45b8004
Adds Swagger docs for API
lissy93 May 18, 2024
245c68a
JSON parsing in API endpoints
lissy93 May 18, 2024
1863b96
docs: Updates contributors list
liss-bot May 19, 2024
586fd95
Updates Vercel and adds SASS
lissy93 May 19, 2024
e22de6f
Adds API docs route
lissy93 May 19, 2024
f426a90
Use Link tag, instead of anchor tag
lissy93 May 20, 2024
49bd8cd
All-in-one dev command
lissy93 May 20, 2024
5fe010d
Adds Swagger docs and assets
lissy93 May 20, 2024
ee5c814
Updates links to use Link instead of anchor
lissy93 May 20, 2024
584daab
Fix catch-all when GUI is disabled
lissy93 May 20, 2024
d3f2ab4
Astro app
lissy93 May 20, 2024
691eb00
Adds aliases for styles and assets
lissy93 May 20, 2024
728cf30
Removes old swagger location
lissy93 May 20, 2024
c1e555d
CICD: bumped GHA versions
vitalykarasik May 24, 2024
40d7d46
docs: Updates contributors list
liss-bot May 26, 2024
8138732
Merge pull request #145 from vitalykarasik/CICD/gha-updates
lissy93 May 26, 2024
8877b71
Adds Svelte, Framer and starts work on homepage
lissy93 May 26, 2024
354404a
Sort openPorts and failedPorts before returning
n0a May 27, 2024
99f63e9
Merge pull request #146 from n0a/patch-3
lissy93 May 28, 2024
f72bac1
docs: Updates contributors list
liss-bot Jun 2, 2024
8e9044b
Adds Hubot Sans fonts
lissy93 Jun 3, 2024
9e4960e
Updates to new icon
lissy93 Jun 3, 2024
516d5eb
Removes old fonts location
lissy93 Jun 3, 2024
7fbc2e4
Adds interactive animated components for homepage
lissy93 Jun 3, 2024
e1876b3
Adds nav scafold component
lissy93 Jun 3, 2024
5d082cd
Global and reusable stylings
lissy93 Jun 3, 2024
a1089bf
Astro pages build up
lissy93 Jun 3, 2024
7c12d2b
Updates base layout
lissy93 Jun 3, 2024
51c679c
Add more additional resources
HeroGamers Jun 7, 2024
adf7213
Fixes some URL site errors when visiting
HeroGamers Jun 7, 2024
1357e78
chore: Redirect /about to /check/about
lissy93 Jun 8, 2024
f11994f
dep: Adds Font Awesome, and builds an Icon component
lissy93 Jun 8, 2024
83b9bd5
ref: Improves few of the older React components
lissy93 Jun 8, 2024
24c0616
feat: Adds new feature components for new homepage
lissy93 Jun 8, 2024
5bf540f
feat: Adds new favicon
lissy93 Jun 8, 2024
afa3907
Builds footer, and updates new homepage
lissy93 Jun 8, 2024
6579d47
docs: Updates contributors list
liss-bot Jun 9, 2024
5dd2262
build: Create DockerHub tag, when new GitHub tag is created
lissy93 Jun 9, 2024
e7b6191
chore: Update default branch in Docker workflow
lissy93 Jun 9, 2024
30f1651
revert: Docker workflow
lissy93 Jun 9, 2024
fb3a659
docs: Updates domains in Swagger docs
lissy93 Jun 15, 2024
4ee5363
styles: Updates theme of V1 check to match homepage
lissy93 Jun 15, 2024
12e9099
assets: Adds image assets
lissy93 Jun 15, 2024
3465ead
feat: Adds self-hosting docs page
lissy93 Jun 15, 2024
de0c1b9
feat: Updates nav, icon, colors, background and homepage
lissy93 Jun 15, 2024
3f246b5
Update resource links
lissy93 Jun 16, 2024
c86c8d8
Merge pull request #147 from HeroGamers/external-tools
lissy93 Jun 16, 2024
e8c4c0a
assets: adds swagger and webauthn imgs
lissy93 Jun 16, 2024
563d6a0
feat: Initial landing page for API docs
lissy93 Jun 16, 2024
632915e
feat: Adds screenshots to homepage
lissy93 Jun 16, 2024
a7b7121
feat: improved err messaging for netlify
lissy93 Jun 16, 2024
25083c7
feat: styles, nav, home, and stuff
lissy93 Jun 16, 2024
0cefb30
Merge branch 'master' of github.com:lissy93/web-check into FEAT/astroify
lissy93 Jun 16, 2024
543d948
feat: Adds coming soon to account
lissy93 Jun 16, 2024
61416f7
feat: Deploy target to lowercase
lissy93 Jun 18, 2024
0ed22d2
feat: Dynamically import SSR handler
lissy93 Jun 18, 2024
40eab65
feat: Add old-school export option for Netlify
lissy93 Jun 18, 2024
2cdd9df
feat: Styling for error logs
lissy93 Jun 21, 2024
3ebc66b
feat: Specify API destination for netlify
lissy93 Jun 21, 2024
2ad912c
dep: Adds Chromium
lissy93 Jun 21, 2024
c19d6e4
fix: Remove the redirect from netlify config
lissy93 Jun 21, 2024
34940dd
dep: Temp downgrade of axios, for netlify
lissy93 Jun 21, 2024
604f847
fix: Netlify include node_modules
lissy93 Jun 21, 2024
5d162a3
fix: Netlify include axios for function runtime
lissy93 Jun 21, 2024
4a01357
fix: Uses esbuild as the node bundler for netlify
lissy93 Jun 21, 2024
71be5ca
fix: Revert esbuild as the node bundler for netlify
lissy93 Jun 22, 2024
531fbcd
Merge pull request #139 from Lissy93/FEAT/astroify
lissy93 Jun 22, 2024
76ede1a
fix: Loading of API docs
lissy93 Jun 22, 2024
f3b8aa1
fix: Update clas for sponsor block
lissy93 Jun 22, 2024
2ef0b73
fix: Hyperlink to homepage not use React Link
lissy93 Jun 22, 2024
9575309
bump: 2.0.0
lissy93 Jun 22, 2024
28afe00
Merge pull request #150 from Lissy93/FIX/links-api-spec-and-sponsor
lissy93 Jun 22, 2024
fb3b7e3
docs: Updates contributors list
liss-bot Jun 23, 2024
3f403b5
fix: Fix 404 errors for github repository and license urls in the footer
dimitri-kandassamy Jun 24, 2024
7e253d1
docs: Updates contributors list
liss-bot Jun 30, 2024
4473067
change cover img
Its-Just-Nans Jun 30, 2024
07ffd2e
Merge pull request #156 from Its-Just-Nans/fix-cover
lissy93 Jun 30, 2024
768730c
Merge pull request #154 from dimitri-kandassamy/fix-footer-github-link
lissy93 Jun 30, 2024
cc78282
docs: Updates contributors list
liss-bot Jul 7, 2024
8b0e249
docs: Updates contributors list
liss-bot Jul 21, 2024
0815726
feat: Adds Hudson Rock
lissy93 Jul 22, 2024
fe1ccb2
rf: Update protocol for hudson rock
lissy93 Jul 22, 2024
9d8e595
Merge pull request #161 from Lissy93/feat/hudson-rock
lissy93 Jul 22, 2024
d67e253
Update AdditionalResources.tsx
ntaiko Jul 23, 2024
f2cfdbc
rf: Adds ref to hudson rock link
lissy93 Jul 23, 2024
f63b5bd
Merge pull request #163 from Lissy93/feat/hudson-rock
lissy93 Jul 23, 2024
7221faa
docs: Updates contributors list
liss-bot Aug 11, 2024
82d5673
Merge pull request #170 from Lissy93/contributors-readme-action-YNmkp…
lissy93 Aug 17, 2024
00edc7c
Merge pull request #162 from 34bits/patch-2
lissy93 Aug 17, 2024
5659da0
feat: Temporarily disable, because I am poor.
lissy93 Dec 17, 2024
6d6b1f0
Merge pull request #205 from Lissy93/sad/disable-everything-temporarily
lissy93 Dec 17, 2024
8ba0830
fix screenshot.js
CrazyWolf13 Feb 26, 2025
6e6eaab
docs: Updates contributors list
liss-bot Mar 23, 2025
20db238
Merge pull request #237 from Lissy93/contributors-readme-action-8zk_v…
lissy93 Mar 29, 2025
ce3b990
Merge pull request #228 from CrazyWolf13/patch-1
lissy93 Mar 29, 2025
8fdef37
ref: Update data-domain
lissy93 Apr 3, 2025
18470dc
security: Replace exec with execFile
lissy93 Apr 12, 2025
0a59010
ref: Bump version to 2.0.1
lissy93 Apr 12, 2025
56148c9
Merge pull request #243 from Lissy93/sec/fix-com-inj-vul
lissy93 Apr 12, 2025
eaba8df
fix: Fix navigation links and add smooth scrolling to hash fragments
tnga Jun 12, 2025
72e4c19
fix: change web-check.zyz link to expected web-check.xyz
tnga Jun 12, 2025
7e37ec4
fix: add toString() to prevent title attribute TypeError on non-strin…
tnga Jun 16, 2025
7a7220c
fix: handle undefined robots data and improve object destructuring in…
tnga Jun 16, 2025
c49e688
Merge pull request #249 from tnga/fixes
lissy93 Jun 28, 2025
c532c14
adds ports to check environment variable.
jayrizon Aug 1, 2025
566c3ed
Merge pull request #252 from jayrizon/patch-1
lissy93 Aug 3, 2025
09d9c06
Bump version from 2.0.1 to 2.0.2
lissy93 Nov 14, 2025
28a4a37
fix: handle non-JSON responses in carbon.js to prevent crash
Jan 8, 2026
77d54b7
Adds sponsor link to Warp <3
lissy93 Jan 13, 2026
2dadb3d
Merge pull request #271 from Alearner12/fix/carbon-json-parsing-error
lissy93 Jan 31, 2026
b0db80a
fix: external service images
lissy93 Apr 6, 2026
baf0b02
fix: screenshot images
lissy93 Apr 6, 2026
65bc543
fix: continue checking paths when security.txt returns HTML
jorgearma Apr 16, 2026
3cc6e06
fix: add User-Agent header to avoid bot-blocking on security.txt fetch
jorgearma Apr 20, 2026
dab41d0
Merge pull request #292 from jorgearma/fix/security-txt-fake-negatives
lissy93 Apr 20, 2026
ddd0fef
ref: Reliability improvments and fixes
lissy93 May 4, 2026
10b284b
fix: Vercel Node 20 deploy, and sec visibility
lissy93 May 4, 2026
1a4d27a
ref: Simpler hook and way of managing checks
lissy93 May 4, 2026
501a004
feat: Re-write TLS checking, removes mozilla replaces with SSL Labs
lissy93 May 4, 2026
26fae33
ref: Consistent API error/skip obj shapes
lissy93 May 5, 2026
7ee608e
ref: Remove builtwith and traceroute
lissy93 May 5, 2026
2bae646
chore: Upgrades all deps, migrate to new astro, ts, etc. removes non-…
lissy93 May 5, 2026
c2500f2
fix: Cloud deployment astro hydration
lissy93 May 5, 2026
221983a
feat: More robust whois and sitemap checks
lissy93 May 5, 2026
60d7098
feat: Local carbon calculations, fixed location
lissy93 May 5, 2026
2b202c7
fix: Updates Dockerfile chromium paths
lissy93 May 5, 2026
639017b
ref: Improved URL detection and parsing
lissy93 May 6, 2026
db36fce
fix: Many data fixes
lissy93 May 7, 2026
1102948
ref: Small reuse of Row
lissy93 May 7, 2026
510b838
fix: Server re-write for /check home in docker
lissy93 May 7, 2026
283b798
fix: Redirect on main instance
lissy93 May 7, 2026
5220ff7
chore: Workflows for CI and CD
lissy93 May 7, 2026
d93e7ba
chore: Setup CI for lint, typecheck and format check
lissy93 May 7, 2026
6ba9692
chore: Format
lissy93 May 7, 2026
e42dcb2
ref: Catches internal errors before passing data onwards
lissy93 May 7, 2026
4099a18
fix: Update lamda function signature for node 24
lissy93 May 7, 2026
6678f3a
fix: Chromium now working on Netlify
lissy93 May 7, 2026
aee6ee8
ref: Clearer error messaging for upstream 403 and chromium bin
lissy93 May 7, 2026
5afc027
bump: version 2.1.0
lissy93 May 7, 2026
6d37a9d
Merge pull request #295 from Lissy93/upgrade/new-structure
lissy93 May 7, 2026
5b5df3a
chore: Update sponsorship section in readme
lissy93 May 8, 2026
539ca00
ref: Move web-check-live to client
lissy93 May 9, 2026
b354505
Merge pull request #297 from Lissy93/ref/client-rename
lissy93 May 9, 2026
1322ff4
🔖 Bump version to 2.1.1
liss-bot May 9, 2026
8e6dc28
feat: initial version of advisory logic
lissy93 May 9, 2026
d5c65cb
fix: Load env vars in astro config before vite
lissy93 May 9, 2026
39514a4
feat: Styles for the new advisory panel
lissy93 May 9, 2026
498d562
feat: Cleaner progress bar status
lissy93 May 9, 2026
cd90f6c
ui: More consistent spacings, responsivness fixes
lissy93 May 9, 2026
555238a
feat: Removed carbon dep, remove partytown, open links in new tab
lissy93 May 9, 2026
73935aa
ref: Removes dep for masonary grid, uses css instead
lissy93 May 9, 2026
237d84f
ci: Adds GH actions workflow to automate releases
lissy93 May 9, 2026
f676391
ref: Deletes old font files, refactors font usage into css vars
lissy93 May 9, 2026
3063dfb
Merge pull request #298 from Lissy93/feat/advisory-panel
lissy93 May 9, 2026
336d59f
🔖 Bump version to 2.1.2
liss-bot May 9, 2026
d91e4e5
fix: False positive PhishTank hit for unverified urls
lissy93 May 10, 2026
51e0e97
fix: Moz UA header
lissy93 May 10, 2026
49d55d3
feat: TLS security audit can poll for retries
lissy93 May 10, 2026
438fcbc
ref: Cleaner loading bar
lissy93 May 10, 2026
4783268
feat: Shows more informative error message for big fails
lissy93 May 10, 2026
417be01
feat: Protocol no longer required when searching
lissy93 May 10, 2026
3f911b7
feat: Adds skip reasons for IP looksups on non-IP jobs
lissy93 May 10, 2026
7cb75e3
ref: Bump timeout
lissy93 May 10, 2026
0017407
ref: Less failures for archive and quality checks
lissy93 May 10, 2026
47d9245
fix: formatting
lissy93 May 10, 2026
ba5c813
ref: Remove per-job timeouts
lissy93 May 10, 2026
3cfa44f
Merge pull request #303 from Lissy93/feat/ui-result-accuracy
lissy93 May 10, 2026
9bf0982
🔖 Bump version to 2.1.3
liss-bot May 10, 2026
de065e5
feat: Subdomain lookup
lissy93 May 10, 2026
c77e89f
Merge pull request #304 from Lissy93/feat/new-checks
lissy93 May 11, 2026
8fd8e2e
🔖 Bump version to 2.1.4
liss-bot May 11, 2026
dd8bfea
ref: Carbon calculation to v4
lissy93 May 11, 2026
ece1857
ref: Meta tags, show site name in title on check page
lissy93 May 11, 2026
3fed737
Merge branch 'master' of github.com:lissy93/web-check into feat/small…
lissy93 May 11, 2026
ab16bc5
ref: Hold my beer, i bout to commit
lissy93 May 11, 2026
5ace670
feat: New assets for site icons
lissy93 May 11, 2026
ddeb5e7
ref: Updates manifest with icon paths
lissy93 May 11, 2026
4953c51
ref: Subdomain robustness
lissy93 May 11, 2026
f3f3bcc
fix: Rank when www. included
lissy93 May 11, 2026
3218a8d
ref: Updates info on main check page
lissy93 May 11, 2026
99bf653
fix: Hide animation for loader
lissy93 May 11, 2026
fc6dcbc
Merge pull request #305 from Lissy93/feat/small-improvments
lissy93 May 11, 2026
df43c70
🔖 Bump version to 2.1.5
liss-bot May 11, 2026
db82a1d
fix: wrap IPv6 addresses in DNS records card to prevent visual trunca…
max May 13, 2026
442b6a1
fix: change OCSP stapling display from pass/fail to informational
max May 18, 2026
89bf2a7
Merge pull request #307 from maximillions-dev/fix/ocsp-stapling-display
lissy93 May 18, 2026
591459c
🔖 Bump version to 2.1.6
liss-bot May 18, 2026
85bd232
Wrap long DNS record values
dicnunz May 20, 2026
3b1ff9b
Merge pull request #308 from dicnunz/codex/fix-dns-ipv6-wrap
lissy93 May 21, 2026
e4c116b
🔖 Bump version to 2.1.7
liss-bot May 21, 2026
4142d80
chore: add OCI standard labels to Dockerfile
Erwan-loot May 22, 2026
764e4f2
ci: wire docker/metadata-action for dynamic OCI labels
Erwan-loot May 22, 2026
c16a639
Merge pull request #309 from Erwan-loot/chore/add-oci-labels
lissy93 May 22, 2026
0d106d4
🔖 Bump version to 2.1.8
liss-bot May 22, 2026
6cb50fe
Merge branch 'master' into fix/dns-ipv6-truncation
lissy93 May 23, 2026
0a91c2f
Merge pull request #306 from maximillions-dev/fix/dns-ipv6-truncation
lissy93 May 23, 2026
56b3b36
🔖 Bump version to 2.1.9
liss-bot May 23, 2026
3b831f3
Remove Uruky from readme
lissy93 Jun 13, 2026
96a69af
fix: Subdomains
lissy93 Jun 15, 2026
e31c232
fix: More performant subdomains
lissy93 Jun 15, 2026
26673b2
fix: include domain name in DNS server lookup error message
Dev9269 Jul 17, 2026
cdee246
Remove pr-body.txt (AI artifact, not needed in codebase)
Dev9269 Jul 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
15 changes: 15 additions & 0 deletions .config/eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import eslintPluginAstro from 'eslint-plugin-astro';
import tsParser from '@typescript-eslint/parser';

export default [
...eslintPluginAstro.configs.recommended,
{
files: ['**/*.ts', '**/*.tsx'],
languageOptions: {
parser: tsParser,
},
},
{
ignores: ['dist/', 'node_modules/', '.astro/', '.netlify/', '.vercel/'],
},
];
30 changes: 30 additions & 0 deletions .env.sample
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Environmental Variables can be stored here
# Be sure to uncomment any line you populate
# Everything is optional, but some features won't work without external API access

# Kill switch for the public/hosted instance
# VITE_DISABLE_EVERYTHING='false'

# API Keys for external services (backend)
GOOGLE_CLOUD_API_KEY=''
TORRENT_IP_API_KEY=''
SECURITY_TRAILS_API_KEY=''
URL_SCAN_API_KEY=''
TRANCO_USERNAME=''
TRANCO_API_KEY=''
CLOUDMERSIVE_API_KEY=''
SHODAN_API_KEY=''
WHO_API_KEY=''

# Configuration settings
# CHROME_PATH='/usr/bin/chromium' # The path the the Chromium executable
# PORT='3000' # Port to serve the API, when running server.js
# DISABLE_GUI='false' # Disable the GUI, and only serve the API
# PUBLIC_API_TIMEOUT_LIMIT='25000'# Timeout for API requests, in milliseconds
# API_CORS_ORIGIN='*' # Enable CORS, by setting your allowed hostname(s) here
# API_ENABLE_RATE_LIMIT='true' # Enable rate limiting for the API
# REACT_APP_API_ENDPOINT='/api' # The endpoint for the API (can be local or remote)
# ENABLE_ANALYTICS='false' # Enable Plausible hit counter for the frontend
# BOSS_SERVER='false' # Marketing homepage (only used by official instance)
# TRUST_PROXY='1' # Set if running behind a reverse proxy (Traefik, nginx, etc).
# Use a number of hops (e.g. '1'), 'true', or a CIDR list.
1 change: 1 addition & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
github: [lissy93]
1,066 changes: 1,066 additions & 0 deletions .github/README.md

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions .github/screenshots/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
![Screenshot](https://raw.githubusercontent.com/Lissy93/web-check/HEAD/.github/screenshots/web-check-screenshot3.png)
Binary file added .github/screenshots/tiles/archives.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/screenshots/tiles/block-lists.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/screenshots/tiles/carbon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/screenshots/tiles/cookies.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/screenshots/tiles/dns-server.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/screenshots/tiles/dns.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/screenshots/tiles/dnssec.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/screenshots/tiles/domain.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/screenshots/tiles/email-config.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/screenshots/tiles/features.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/screenshots/tiles/firewall.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/screenshots/tiles/headers.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/screenshots/tiles/hosts.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/screenshots/tiles/hsts.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/screenshots/tiles/http-security.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/screenshots/tiles/linked-pages.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/screenshots/tiles/location.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/screenshots/tiles/ports.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/screenshots/tiles/quality.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/screenshots/tiles/ranking.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/screenshots/tiles/redirects.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/screenshots/tiles/robots.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/screenshots/tiles/screenshot.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/screenshots/tiles/security-txt.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/screenshots/tiles/server.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/screenshots/tiles/sitemap.png
Binary file added .github/screenshots/tiles/social-tags.png
Binary file added .github/screenshots/tiles/ssl.png
Binary file added .github/screenshots/tiles/status.png
Binary file added .github/screenshots/tiles/tech-stack.png
Binary file added .github/screenshots/tiles/threats.png
Binary file added .github/screenshots/tiles/tls-cipher-suites.png
Binary file added .github/screenshots/tiles/trace-route.png
Binary file added .github/screenshots/tiles/txt-records.png
Binary file added .github/screenshots/web-check-screenshot1.png
Binary file added .github/screenshots/web-check-screenshot10.png
Binary file added .github/screenshots/web-check-screenshot2.png
Binary file added .github/screenshots/web-check-screenshot3.png
Binary file added .github/screenshots/web-check-screenshot4.png
Binary file added .github/screenshots/web-check-screenshot5.png
Binary file added .github/screenshots/web-check-screenshot6.png
Binary file added .github/screenshots/web-check-screenshot7.png
Binary file added .github/screenshots/web-check-screenshot8.png
Binary file added .github/screenshots/web-check-screenshot9.png
Binary file added .github/web-check-logo.png
325 changes: 325 additions & 0 deletions .github/workflows/bump-and-tag.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,325 @@
# Creates a new git tag when a PR is merged, or on manual dispatch
#
# PR trigger flow:
# - Triggered whenever a PR is merged, if that PR made code changes
# - If version wasn't bumped in PR, increment patch version and update package.json
# - Otherwise (if the PR did bump version) we use the new version from package.json
# - Creates and pushes a git tag for the new version
# - That git tag then triggers Docker publishing and AWS deployment in other CI
# - Add tags to issues from newly released features/fixes (if applicable)
# - Finally, shows summary of actions taken and new tag published
#
# Manual dispatch flow:
# - If a version is provided, sets package.json to that version
# - If no version is provided, increments patch version automatically
# - Creates and pushes a git tag for the new version
name: 🔖 Auto Version & Tag

on:
workflow_dispatch:
inputs:
version:
description: 'Version to release (e.g. 2.1.0). Leave blank to auto-increment patch.'
required: false
type: string
pull_request_target:
types: [closed]
branches: [master]

concurrency:
group: auto-version-and-tag
cancel-in-progress: false

permissions:
contents: write
pull-requests: read
issues: write

env:
IS_MANUAL: ${{ github.event_name == 'workflow_dispatch' }}

jobs:
version-and-tag:
if: >-
github.event_name == 'workflow_dispatch'
|| github.event.pull_request.merged == true
runs-on: ubuntu-latest
steps:
- name: Validate manual version input 🔢
if: env.IS_MANUAL == 'true' && inputs.version != ''
env:
INPUT_VERSION: ${{ inputs.version }}
run: |
if ! echo "$INPUT_VERSION" | grep -qE '^[0-9]+\.[0-9]+\.[0-9]+$'; then
echo "::error::Invalid version '${INPUT_VERSION}'. Must be semver (e.g. 2.1.0)."
exit 1
fi

- name: Check PR for code changes and version bump 📂
id: check_pr
if: env.IS_MANUAL != 'true'
uses: actions/github-script@v9
with:
script: |
const { owner, repo } = context.repo;
const pull_number = context.payload.pull_request.number;

const files = await github.paginate(
github.rest.pulls.listFiles, { owner, repo, pull_number }
);
const codePatterns = [
/^src\//, /^api\//, /^public\//, /^Dockerfile$/, /^[^/]+\.(js|mjs)$/,
];
const codeChanged = files.some(f =>
codePatterns.some(p => p.test(f.filename))
);
const pkgChanged = files.some(f => f.filename === 'package.json');

if (!codeChanged && !pkgChanged) {
core.info('No code or package.json changes, skipping');
core.setOutput('needs_bump', 'false');
core.setOutput('needs_tag', 'false');
return;
}

let versionBumped = false;
if (pkgChanged) {
const mergeSha = context.payload.pull_request.merge_commit_sha;
const { data: mergeCommit } = await github.rest.git.getCommit({
owner, repo, commit_sha: mergeSha,
});
const parentSha = mergeCommit.parents[0].sha;
const getVersion = async (ref) => {
const { data } = await github.rest.repos.getContent({
owner, repo, path: 'package.json', ref,
});
return JSON.parse(Buffer.from(data.content, 'base64').toString()).version;
};
const [prevVersion, mergeVersion] = await Promise.all([
getVersion(parentSha), getVersion(mergeSha),
]);
versionBumped = prevVersion !== mergeVersion;
core.info(`Version: ${prevVersion} → ${mergeVersion}`);
}

const needsBump = codeChanged && !versionBumped;
const needsTag = codeChanged || versionBumped;
core.info(`Needs bump: ${needsBump}, Needs tag: ${needsTag}`);
core.setOutput('needs_bump', needsBump.toString());
core.setOutput('needs_tag', needsTag.toString());

- name: Checkout repository 🛎️
if: env.IS_MANUAL == 'true' || steps.check_pr.outputs.needs_tag == 'true'
uses: actions/checkout@v6
with:
token: ${{ secrets.BOT_TOKEN || secrets.GITHUB_TOKEN }}

- name: Configure git identity 👤
if: env.IS_MANUAL == 'true' || steps.check_pr.outputs.needs_tag == 'true'
run: |
git config user.name "Liss-Bot"
git config user.email "liss-bot@d0h.co"

- name: Extract referenced issues 🔍
id: issues
if: env.IS_MANUAL != 'true' && steps.check_pr.outputs.needs_tag == 'true'
uses: actions/github-script@v9
with:
script: |
const body = context.payload.pull_request.body || '';
const prNumber = String(context.payload.pull_request.number);
const matches = body.match(/#(\d+)(?![a-fA-F0-9])/g);
if (!matches) {
core.info('No issue references found in PR body');
core.setOutput('numbers', '');
return;
}
const unique = [...new Set(matches.map(m => m.replace('#', '')))]
.filter(n => n !== prNumber && parseInt(n, 10) > 0);
if (unique.length === 0) {
core.info('No issue references after filtering');
core.setOutput('numbers', '');
return;
}
core.info(`Found issue references: ${unique.join(', ')}`);
core.setOutput('numbers', unique.join(','));

- name: Bump version ⬆️
if: >-
env.IS_MANUAL == 'true'
|| steps.check_pr.outputs.needs_bump == 'true'
env:
INPUT_VERSION: ${{ inputs.version }}
run: |
if [ "$IS_MANUAL" = "true" ] && [ -n "$INPUT_VERSION" ]; then
npm version "$INPUT_VERSION" --no-git-tag-version --allow-same-version
else
npm version patch --no-git-tag-version
fi
git add package.json
git commit -m "🔖 Bump version to $(node -p "require('./package.json').version")"
git push

- name: Create and push tag 🏷️
id: tag
if: env.IS_MANUAL == 'true' || steps.check_pr.outputs.needs_tag == 'true'
env:
PR_NUMBER: ${{ github.event.pull_request.number || '' }}
PR_TITLE: ${{ github.event.pull_request.title || '' }}
PR_AUTHOR: ${{ github.event.pull_request.user.login || github.actor }}
MERGE_SHA: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
ISSUES: ${{ steps.issues.outputs.numbers }}
run: |
VERSION=$(node -p "require('./package.json').version")
git fetch --tags --force
if git rev-parse "refs/tags/$VERSION" >/dev/null 2>&1; then
echo "Tag $VERSION already exists, skipping"
exit 0
fi

{
printf 'Web-Check v%s 🚀\n\n' "$VERSION"
if [ -n "$PR_NUMBER" ]; then
printf 'PR: #%s - %s\n' "$PR_NUMBER" "$PR_TITLE"
else
printf 'Manual release by @%s\n' "$PR_AUTHOR"
fi
if [ -n "$ISSUES" ]; then
printf 'Resolves: %s\n' "$(echo "$ISSUES" | sed 's/,/, #/g; s/^/#/')"
fi
printf 'Author: @%s\n' "$PR_AUTHOR"
printf 'Commit: %s\n' "$MERGE_SHA"
} > tag-message.txt

git tag -a "$VERSION" -F tag-message.txt
git push origin "$VERSION"

- name: Label referenced issues 🛩️
id: label
if: >-
env.IS_MANUAL != 'true'
&& steps.check_pr.outputs.needs_tag == 'true'
&& steps.issues.outputs.numbers != ''
continue-on-error: true
uses: actions/github-script@v9
env:
ISSUES: ${{ steps.issues.outputs.numbers }}
with:
github-token: ${{ secrets.BOT_TOKEN || secrets.GITHUB_TOKEN }}
script: |
const { owner, repo } = context.repo;
const { version } = JSON.parse(require('fs').readFileSync('package.json', 'utf8'));
const labelName = `🛩️ Released ${version}`;
const issues = process.env.ISSUES.split(',').filter(Boolean);

try {
await github.rest.issues.createLabel({
owner, repo,
name: labelName,
color: 'EDEDED',
description: `Included in release v${version}`,
});
core.info(`Created label: ${labelName}`);
} catch (e) {
if (e.status === 422) {
core.info(`Label already exists: ${labelName}`);
} else {
core.warning(`Failed to create label: ${e.message}`);
}
}

const prNumber = context.payload.pull_request.number;
const prAuthor = context.payload.pull_request.user?.login;
const creditAuthor = prAuthor && prAuthor.toLowerCase() !== 'lissy93';
const marker = `released-${version}`;
for (const num of issues) {
const issue_number = parseInt(num, 10);
try {
const [{ data: issue }, comments] = await Promise.all([
github.rest.issues.get({ owner, repo, issue_number }),
github.rest.issues.listComments({
owner, repo, issue_number, per_page: 100,
}),
]);
const alreadyCommented = comments.data.some(
c => c.body?.includes(marker)
);
if (!alreadyCommented) {
const author = issue.user?.login;
const greeting = author ? `Hey @${author},` : 'Hey,';
const sixMonthsAgo = new Date();
sixMonthsAgo.setMonth(sixMonthsAgo.getMonth() - 6);
const isOld = new Date(issue.created_at) < sixMonthsAgo;
const byLine = creditAuthor ? ` by @${prAuthor}` : '';
const parts = [
greeting,
`this has now been implemented${byLine} in #${prNumber},`,
`and will be released shortly in ${version} 😇`,
];
if (isOld) parts.push(`\n\nWe're sorry this one took so long 😔`);
parts.push(`<!-- ${marker} -->`);
const body = parts.join(' ');
await github.rest.issues.createComment({
owner, repo, issue_number, body,
});
}
await github.rest.issues.addLabels({
owner, repo, issue_number, labels: [labelName, '✅ Fixed'],
});
core.info(alreadyCommented
? `Already commented on #${num}, labels applied`
: `Commented and labeled #${num}`);
} catch (e) {
core.warning(`Failed to process #${num}: ${e.message}`);
}
}

- name: Job summary 📋
if: always()
env:
PR_NUMBER: ${{ github.event.pull_request.number || '' }}
PR_TITLE: ${{ github.event.pull_request.title || '' }}
REPO_URL: ${{ github.server_url }}/${{ github.repository }}
NEEDS_BUMP: ${{ steps.check_pr.outputs.needs_bump }}
NEEDS_TAG: ${{ steps.check_pr.outputs.needs_tag }}
ISSUES: ${{ steps.issues.outputs.numbers }}
TAG_OUTCOME: ${{ steps.tag.outcome }}
LABEL_OUTCOME: ${{ steps.label.outcome }}
run: |
VERSION=$(node -p "require('./package.json').version" 2>/dev/null || echo "unknown")

{
echo "## 🔖 Auto Version & Tag"
echo ""
echo "| Step | Result |"
echo "|------|--------|"

if [ "$IS_MANUAL" = "true" ]; then
echo "| Trigger | Manual dispatch |"
elif [ -n "$PR_NUMBER" ]; then
echo "| PR | [#${PR_NUMBER}](${REPO_URL}/pull/${PR_NUMBER}) — ${PR_TITLE} |"
fi

if [ "$IS_MANUAL" = "true" ] || [ "$NEEDS_BUMP" = "true" ]; then
echo "| Version bump | ✅ \`${VERSION}\` |"
else
echo "| Version bump | ⏭️ Skipped |"
fi

if [ "$TAG_OUTCOME" = "success" ]; then
echo "| Tag | ✅ [\`${VERSION}\`](${REPO_URL}/releases/tag/${VERSION}) |"
elif [ "$IS_MANUAL" = "true" ] || [ "$NEEDS_TAG" = "true" ]; then
echo "| Tag | ❌ Failed |"
else
echo "| Tag | ⏭️ Skipped |"
fi

if [ -n "$ISSUES" ]; then
ISSUE_LINKS=$(echo "$ISSUES" | tr ',' '\n' | sed "s|.*|[#&](${REPO_URL}/issues/&)|" | paste -sd ' ' -)
if [ "$LABEL_OUTCOME" = "success" ]; then
echo "| Issues labeled | ✅ ${ISSUE_LINKS} |"
else
echo "| Issues labeled | ⚠️ ${ISSUE_LINKS} |"
fi
fi
} >> "$GITHUB_STEP_SUMMARY"
Loading