Skip to content
https://codeberg.org

Infrastructure

· 9 checks — DNS, redirects, IPv6, crawlability, URL variants, and domain intelligence rolled into one auditable list.
SCORE
82
GRADE
B
FIX
2
REVIEW
2
PASS
5
INFO
0
Probed from Santa Clara, United States
200 OK
Checks
9
5 PASS 2 REVIEW 2 FIX
F
IPv6 Readiness
Action
IPv6 records exist but unreachable
FIX
IPv6 records exist but unreachable
Warning::
IPv6 DNS records exist but server is not reachable
Having AAAA records but an unreachable server is worse than no AAAA — clients may experience delays before falling back to IPv4.
Got: 2a0a:4580:103f:c0de::1
Info::
IPv6 connection error
Got: dial tcp6 [2a0a:4580:103f:c0de::1]:443: connect: network is unreachable
IPv6 Misconfigured
AAAA Records 2a0a:4580:103f:c0de::1 Connection UNREACHABLE

Having AAAA records but an unreachable server is worse than no AAAA — clients may experience delays before falling back to IPv4.

Why this matters

Advertising IPv6 (AAAA records) without a reachable server means IPv6-preferring clients silently fail every connection.

Learn more

Modern browsers prefer IPv6 if AAAA exists (Happy Eyeballs algorithm). If the IPv6 server isn't reachable, browsers fall back to IPv4 — but with seconds of added latency per request. Either fix IPv6 reachability or remove the AAAA records.

Source: RFC 8305 (Happy Eyeballs)

D
CDN & Delivery
Action
No CDN detected
FIX
No CDN detected
Warning::
No CDN detected
A CDN can significantly improve load times for users around the world by caching content at edge nodes closer to them.
No CDN detected

Consider using a CDN to improve global delivery speed and reduce origin load.

B
Crawlability
robots.txt present, no sitemap
REVIEW
robots.txt present, no sitemap
Info::
robots.txt is present
Got: 2192 bytes
Info::
No sitemap.xml found
A sitemap helps search engines discover and index your pages more efficiently.
Info::
robots.txt does not reference a sitemap
Add a 'Sitemap:' directive to robots.txt so search engines can discover your sitemap.

A sitemap helps search engines discover and index your pages more efficiently.

Why this matters

No sitemap.xml — Google relies on crawl-graph discovery alone, slowing indexing of deep or fresh URLs.

Learn more

A sitemap accelerates Google's discovery of new and updated content. Most CMSes auto-generate one; static-site frameworks need a build-step plugin. Reference it from robots.txt and submit in Search Console to confirm Google can fetch it.

Source: sitemaps.org / Google Search Central

Add a 'Sitemap:' directive to robots.txt so search engines can discover your sitemap.

Why this matters

robots.txt omits Sitemap: directive — crawlers must fetch /sitemap.xml by convention; reliable but missing the explicit hint.

Source: sitemaps.org

robots.txt 200 OK
Size 2192 B Sitemaps referenced 0 User-agents Omgilibot, Scrapy, cohere-ai, facebookexternalhit, FriendlyCrawler, GPTBot, Omgili, *, Bytespider, CCBot, ClaudeBot, Claude-Web, FacebookBot, VelenPublicWebCrawler, Applebot-Extended, PerplexityBot, PetalBot, Timpibot, ChatGPT-User, Google-Extended, ImagesiftBot, meta-externalagent, OAI-SearchBot, Amazonbot, ICC-Crawler, img2dataset, YouBot, anthropic-ai, Diffbot Blocking No — crawling allowed
User-agent: *
Disallow: /api/
Disallow: /avatars/
Disallow: /user/
Disallow: /swagger.*.json
Disallow: /explore/*?*

Disallow: /repo/create
Disallow: /repo/migrate
Disallow: /org/create
Disallow: /*/*/fork

Disallow: /*/*/watchers
Disallow: /*/*/stargazers
Disallow: /*/*/forks

Disallow: /*/*/src/
Disallow: /*/*/blame/
Disallow: /*/*/commit/
Disallow: /*/*/commits/
Disallow: /*/*/raw/
Disallow: /*/*/media/
Disallow: /*/*/tags
Disallow: /*/*/graph
Disallow: /*/*/branches
Disallow: /*/*/compare
Disallow: /*/*/lastcommit/
Disallow: /*/*/rss/branch/
Disallow: /*/*/atom/branch/

Disallow: /*/*/activity
Disallow: /*/*/activity_author_data

Disallow: /*/*/actions
Disallow: /*/*/projects
Disallow: /*/*/labels
Disallow: /*/*/milestones

Disallow: /*/*/find/
Disallow: /*/*/tree-list/
Disallow: /*/*/search/
Disallow: /*/-/code

Disallow: /*/*/issues/new
Disallow: /*/*/pulls/*/files
Disallow: /*/*/pulls/*/commits

Disallow: /attachments/
Disallow: /*/*/attachments/
Disallow: /*/*/issues/*/attachments/
Disallow: /*/*/pulls/*/attachments/
Disallow: /*/*/releases/attachments
Disallow: /*/*/releases/download

Disallow: /*/*/archive/
Disallow: /*.bundle$
Disallow: /*.patch$
Disallow: /*.diff$
Disallow: /*.atom$
Disallow: /*.rss$

Disallow: /*lang=*
Disallow: /*redirect_to=*
Disallow: /*tab=*
Disallow: /*q=*
Disallow: /*sort=*
Disallow: /*repo-search-archived=*

# Codeberg-specific changes
Disallow: /Codeberg/*/*/Imprint.md
Disallow: /mirror   ## huge linux mirror, pointless to index

Crawl-delay: 2

User-agent: Amazonbot
User-agent: anthropic-ai
User-agent: Applebot-Extended
User-agent: Bytespider
User-agent: CCBot
User-agent: ChatGPT-User
User-agent: ClaudeBot
User-agent: Claude-Web
User-agent: cohere-ai
User-agent: Diffbot
User-agent: FacebookBot
User-agent: facebookexternalhit
User-agent: FriendlyCrawler
User-agent: Google-Extended
User-agent: GPTBot
User-agent: ICC-Crawler
User-agent: ImagesiftBot
User-agent: img2dataset
User-agent: meta-externalagent
User-agent: OAI-SearchBot
User-agent: Omgili
User-agent: Omgilibot
User-agent: PerplexityBot
User-agent: PetalBot
User-agent: Scrapy
User-agent: Timpibot
User-agent: VelenPublicWebCrawler
User-agent: YouBot
Disallow: /

sitemap.xml No sitemap found

No sitemap found

Adding a sitemap helps search engines discover your pages.

B
TLS Certificate Expiry & Recommendations
80 days until leaf cert expires — 3 issues to address
REVIEW

Certificate validity

80
days left
0d 30d 60d 90d+

Recommended actions

  • Submit your domain to hstspreload.org to be added to the Chrome preload list
  • Enable DNSSEC on your domain for DNS spoofing protection
  • Enable OCSP stapling on your TLS server to remove a CA roundtrip and protect user privacy
A+
DNS Records
1 A records, 83 ms lookup
PASS
1 A records, 83 ms lookup
Info::
Resolves to 1 IPv4 address(es)
Got: 217.197.84.140
Info::
Single A record — no DNS redundancy
Multiple A records provide failover if one server goes down.
Info::
Has 1 IPv6 (AAAA) record(s)
Got: 2a0a:4580:103f:c0de::1
Info::
3 nameserver(s) configured
Got: ns1.dnsowl.com, ns2.dnsowl.com, ns3.dnsowl.com
Info::
1 mail exchanger(s) configured
Info::
CAA records not checked
CAA record lookup requires a specialized DNS resolver. This check will be available in a future update.
Info::
SPF record present in TXT
Info::
DNS resolution time: 83 ms
Got: 83 ms
A217.197.84.140
AAAA2a0a:4580:103f:c0de::1
CNAME
NSns1.dnsowl.com, ns2.dnsowl.com, ns3.dnsowl.com
MX
10 smtp.codeberg.org
TXT
abuseipdb-verification=V28CJUPq
SPF v=spf1 mx a:mail.codeberg.eu -all
CAALookup not available with standard resolver
Resolved in 83 ms

Multiple A records provide failover if one server goes down.

Why this matters

Single A record means a single point of failure — if that IP goes down, your site is unreachable until DNS TTL expires.

Learn more

Add multiple A records for round-robin failover, or use a managed DNS provider with health-checked failover (Route 53, Cloudflare, NS1). Short TTL (60-300s) lets clients recover faster on outages.

Source: SRE practice / DNS architecture

CAA record lookup requires a specialized DNS resolver. This check will be available in a future update.

Why this matters

Informational: CAA (Certification Authority Authorization) records weren't checked in this scan.

A+
Redirect Chain
No redirects — direct access
PASS
No redirects — direct access
Info::
No redirects — direct access
Got: https://codeberg.org

https://codeberg.org

482 ms · HTTP/1.1 FINAL

#URLStatusTimeProtocolServer
1https://codeberg.org200482 msHTTP/1.1
A
URL Variants
www/non-www, trailing slash, HTTP→HTTPS
PASS
www/non-www, trailing slash, HTTP→HTTPS
Info::
www/non-www redirect configured correctly (preferred: non-www)
Warning::
HTTP→HTTPS redirect uses 302 instead of 301
Got: 302 temporary redirect Expected: 301 permanent redirect

www / non-www

301https://www.codeberg.org/
200https://codeberg.org/

Preferred variant: non-www

HTTP → HTTPS

302http://codeberg.org/ https://codeberg.org/

Use 301 (permanent) instead of 302 (temporary)

A+
Domain Intelligence
codeberg.org — via NameSilo, LLC, 7 years, 10 months old, hosted on IN-BERLIN-AS Individual Network Berlin e.V., DE
PASS
codeberg.org — via NameSilo, LLC, 7 years, 10 months old, hosted on IN-BERLIN-AS Individual Network Berlin e.V., DE
Info::
Domain registered until Jul 5, 2028 (2 years, 2 months remaining)
Info::
DNSSEC is not enabled
DNSSEC protects against DNS spoofing attacks. While not required, enabling DNSSEC adds an additional layer of security. Contact your DNS provider to enable it.
Info::
Registrar: NameSilo, LLC
Warning::
Registrar lock is NOT enabled
The domain can be transferred without an unlock step. Enable registrar lock (clientTransferProhibited) in your registrar's control panel to protect against unauthorized or accidental transfers.
Info::
Hosting: IN-BERLIN-AS Individual Network Berlin e.V., DE
Got: AS29670
Domain expiry

724 days

July 5, 2028

SSL certificate

80 days

Issued by Let's Encrypt

Domain age

7 years, 10 months

Registered July 5, 2018

DNSSEC

Not enabled

Protects against DNS spoofing

Hosting

IN-BERLIN-AS Individual Network Berlin e.V., DE

ASN AS29670

217.197.84.140

Registrar

NameSilo, LLC

Unlocked 3 NS records
Expiry timeline
Today
+1 year
Domain expiry SSL expiry Danger zone (≤30 days)
Recommended actions
  • Enable DNSSEC to protect visitors from DNS spoofing
  • Enable registrar lock (clientTransferProhibited) to block unauthorized domain transfers
Registrar NameSilo, LLC
Created July 5, 2018 (7 years, 10 months ago)
Expires July 5, 2028 (2 years, 2 months)
Last Updated June 18, 2019
Name Servers ns1.dnsowl.com, ns2.dnsowl.com, ns3.dnsowl.com
DNSSEC Not enabled
Hosting
IP Address 217.197.84.140
ASN AS29670 (IN-BERLIN-AS Individual Network Berlin e.V., DE)
Provider IN-BERLIN-AS Individual Network Berlin e.V., DE
Data source: rdap (0.2s)

DNSSEC protects against DNS spoofing attacks. While not required, enabling DNSSEC adds an additional layer of security. Contact your DNS provider to enable it.

Why this matters

Without DNSSEC, an attacker who can poison your DNS can hijack your domain — and SSL certs alone don't stop them.

Learn more

DNSSEC adds cryptographic signatures to DNS records, preventing forged responses from poisoning resolver caches. Without it, an attacker who controls the network path can redirect your domain to a malicious server before any HTTPS handshake happens. Most modern registrars (Cloudflare, Google Domains, Route 53) enable it with one toggle.

Source: ICANN / RFC 4033

The domain can be transferred without an unlock step. Enable registrar lock (clientTransferProhibited) in your registrar's control panel to protect against unauthorized or accidental transfers.

Why this matters

Without registrar lock, an attacker who phishes your registrar credentials can transfer the domain in minutes — total brand hijack.

Learn more

Registrar lock (clientTransferProhibited, clientUpdateProhibited, clientDeleteProhibited) requires extra verification before any transfer/update/delete. Every major registrar offers it free. Combined with 2FA on your registrar account, it's the strongest defense against domain hijacking.

Source: ICANN / domain-security best practice

A
HTTP Probe Timing
Total 650 ms — DNS, TCP, TLS, TTFB, content transfer breakdown
PASS
DNS Lookup DNS Lookup — time to resolve the domain name to an IP address.
5 ms
TCP Connect TCP Connect — time to establish a TCP connection to the server.
156 ms
TLS Handshake TLS Handshake — time to complete the HTTPS encryption handshake.
161 ms
Time to First Byte Time to First Byte — how long the server takes to respond with the first byte of data.
483 ms
Total Time Total request time from DNS lookup through full response.
651 ms

Connection waterfall

DNS Lookup 5 ms TCP Connect 156 ms TLS Handshake 161 ms Server Processing 161 ms Content Transfer 168 ms
All checks on this page are automated. Results are estimates - run targeted manual reviews when the score affects a release decision.

Send Feedback