Files
pages-server/index.html
2026-01-09 12:15:00 +01:00

262 lines
23 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en" class="codeberg-design">
<head>
<!-- Meta tags -->
<meta charset="utf-8" />
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport" />
<meta name="viewport" content="width=device-width" />
<!-- Favicon and title -->
<link rel="icon" href="https://design.codeberg.org/favicon.ico">
<title>Codeberg Pages - static pages for your projects</title>
<!-- Codeberg Design CSS -->
<link rel="icon" href="https://design.codeberg.org/logo-kit/favicon.ico" type="image/x-icon" />
<link rel="icon" href="https://design.codeberg.org/logo-kit/favicon.svg" type="image/svg+xml" />
<link rel="apple-touch-icon" href="https://design.codeberg.org/logo-kit/apple-touch-icon.png" />
<link rel="stylesheet" href="https://design.codeberg.org/design-kit/codeberg.css" />
<script defer src="https://design.codeberg.org/design-kit/codeberg.js"></script>
<script defer src="https://design.codeberg.org/components/codeberg-components.js"></script>
<link href="https://fonts.codeberg.org/dist/inter/Inter%20Web/inter.css" rel="stylesheet" />
<link href="https://fonts.codeberg.org/dist/fontawesome5/css/all.min.css" rel="stylesheet" />
<!-- Page specific styles -->
<style>
.codeberg-hero {
padding: 5rem var(--content-and-card-spacing); display: flex; justify-content: center; background: var(--accent);
}
.codeberg-hero>div {
max-width: 80em; display: flex; align-items: center; color: #fff;
}
.codeberg-hero>div>div {
margin-left: var(--content-and-card-spacing);
}
.codeberg-hero h3 {
font-weight: 600;
}
@media (max-width: 60em) {
.codeberg-hero>div {
flex-direction: column;
}
.codeberg-hero>div>div {
margin-left: 0;
margin-top: var(--content-and-card-spacing);
}
}
.codeberg-divider {
display: flex;
align-items: center;
}
.codeberg-divider>hr { flex-basis: 50%; --lm-horizontal-rule-color: var(--lm-card-border-color); }
.codeberg-divider>hr:first-child { margin-right: 1rem; }
.codeberg-divider>hr:last-child { margin-left: 1rem; }
.codeberg-divider>:not(hr) {
flex: none;
}
.codeberg-number-circle {
width: 2em; height: 2em; display: flex; align-items: center; justify-content: center; margin: 0 auto 1rem;
background: var(--accent);
color: #fff;
border-radius: 1em;
}
</style>
</head>
<body data-dm-shortcut-enabled="true" data-set-preferred-mode-onload="true">
<!-- Page wrapper start -->
<div class="page-wrapper with-navbar">
<!-- Navbar start -->
<nav class="navbar">
<!-- Reference: https://www.gethalfmoon.com/docs/navbar -->
<!-- Navbar brand -->
<a href="https://codeberg.page" class="navbar-brand" title="Codeberg Design">
<img src="https://design.codeberg.org/logo-kit/icon_inverted.svg" alt="Codeberg">
Pages
</a>
<!-- Navbar nav -->
<ul class="navbar-nav d-none d-md-flex"> <!-- d-none = display: none, d-md-flex = display: flex on medium screens and up (width > 768px) -->
<li class="nav-item active">
<a href="" class="nav-link">Intro</a>
</li>
<li class="nav-item">
<a href="https://docs.codeberg.org/codeberg-pages/" class="nav-link">Documentation</a>
</li>
</ul>
<!-- Navbar content (with the dropdown menu) -->
<div class="navbar-content d-md-none ml-auto"> <!-- d-md-none = display: none on medium screens and up (width > 768px), ml-auto = margin-left: auto -->
<div class="dropdown with-arrow">
<button class="btn" data-toggle="dropdown" type="button" id="navbar-dropdown-toggle-btn-1">
Menu
<i class="fa fa-angle-down" aria-hidden="true"></i>
</button>
<div class="dropdown-menu dropdown-menu-right w-200" aria-labelledby="navbar-dropdown-toggle-btn-1"> <!-- w-200 = width: 20rem (200px) -->
<a href="" class="dropdown-item">Intro</a>
<a href="https://docs.codeberg.org/codeberg-pages/" class="dropdown-item">Documentation</a>
</div>
</div>
</div>
</nav>
<!-- Navbar end -->
<!-- Content wrapper start -->
<div class="content-wrapper">
<!-- Container-fluid -->
<div class="container-fluid" style="--accent: #144b49">
<div class="codeberg-hero">
<div>
<svg style="flex: none; max-width: 100%;" width="418.1" height="163" viewBox="0 0 836.2 325.9" xmlns="http://www.w3.org/2000/svg"><style>.st0{fill:#6a737f}.st1{fill:#eef2f4}.st2{fill:#fff}.st3{fill:#003532}.st4{fill:#bbbfc2}.st5{fill:#28a8e0}.st6{opacity:.4;fill:#848484}.st7{fill:none;stroke:#444e59;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10}.st8{opacity:.32;fill:#848484}.st9{fill:#afb1b2}.st10{fill:#aeaeaf}.st11{fill:#6567c3}.st12{opacity:.2;fill:#444e59}.st13{fill:none;stroke:#444e59;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10}.st13,.st14{opacity:.2}.st15{opacity:9e-2}.st16{fill:#f09f54}.st17{fill:#ed8b3b}.st18{fill:#ff6c37}.st19{fill:#8d91db}.st20,.st21{fill:#beccd5;stroke:#444e59;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10}.st21{opacity:.3;fill:none}.st22{opacity:.62;fill:#fff}.st23{opacity:.71;fill:#5d5d5d}.st24{opacity:.8;fill:#bbbfc2}.st25{opacity:.3}.st26,.st27{stroke-width:2}.st26{fill:none;stroke:#444e59;stroke-linejoin:round}.st27{stroke-dasharray:2.858,1.9053}.st27,.st28,.st29,.st30{fill:none;stroke:#444e59;stroke-linejoin:round}.st28{stroke-width:2;stroke-dasharray:3.0046,2.003}.st29,.st30{stroke-miterlimit:10}.st30{stroke-linecap:round}</style><path id="XMLID_1313_" class="st3" d="M825.1 323.9H11c-5 0-9-4-9-9s4-9 9-9h814.2c5 0 9 4 9 9-.1 5-4.1 9-9.1 9z"/><g id="XMLID_24_" transform="translate(-84.7 -342.4)"><path id="XMLID_6_" class="st3" d="M407.4 647.8h140.8v8.4H407.4z"/><g id="XMLID_104_"><path id="XMLID_76_" class="st4" d="M646 592.9H313.8c-6.6 0-12-5.4-12-12V358.4c0-6.6 5.4-12 12-12H646c6.6 0 12 5.4 12 12v222.4c0 6.7-5.3 12.1-12 12.1z"/><path id="XMLID_80_" class="st5" transform="rotate(90 480.6 459.78)" d="M389.8 303.5h181.7v312.6H389.8z"/><path id="XMLID_18_" class="st6" d="M646.8 592.9h-52.1v-94.8c0-7.6 6.1-13.7 13.7-13.7h38.4z"/><path id="XMLID_107_" class="st6" d="M327.1 501.3h-25.3V576c0 9.3 8 16.9 17.4 16.9h29.1v-70c-.1-11.7-9.6-21.6-21.2-21.6z"/><path id="XMLID_5_" class="st7" d="M647 592.9H314.2c-6.6 0-12-5.4-12-12V358.4c0-6.6 5.4-12 12-12H647c6.6 0 12 5.4 12 12v222.4c0 6.7-5.4 12.1-12 12.1z"/><path id="XMLID_7_" class="st7" transform="rotate(90 480.6 459.78)" d="M389.8 303.9h181.7v311.7H389.8z"/></g><path id="XMLID_179_" class="st8" d="M575.9 541.9H404.1c-3.9 0-7-3.2-7-7V412.3c0-3.9 3.2-7 7-7h171.8c3.9 0 7 3.2 7 7v122.5c0 3.9-3.1 7.1-7 7.1z"/><path id="XMLID_134_" class="st9" d="M567.9 535.1H396.1c-3.9 0-7-3.2-7-7V405.6c0-3.9 3.2-7 7-7h171.8c3.9 0 7 3.2 7 7v122.5c.1 3.9-3.1 7-7 7z"/><path id="XMLID_137_" class="st7" d="M567.9 535.1H396.1c-3.9 0-7-3.2-7-7V405.6c0-3.9 3.2-7 7-7h171.8c3.9 0 7 3.2 7 7v122.5c.1 3.9-3.1 7-7 7z"/><path id="XMLID_96_" class="st10" d="M522.5 647.8h-83.8l10.4-54.9h63z"/><path id="XMLID_99_" class="st8" d="M514.9 608.4l-2.8-15.5h-63l-2.8 15.5z"/><path id="XMLID_3_" class="st7" d="M522.5 647.8h-83.8l10.4-54.9h63z"/><circle id="XMLID_9_" class="st3" cx="480.1" cy="567.7" r="6.2"/><path id="XMLID_133_" class="st2" d="M553.8 522.5H382c-3.9 0-7-3.2-7-7V392.9c0-3.9 3.2-7 7-7h171.8c3.9 0 7 3.2 7 7v122.5c.1 3.9-3.1 7.1-7 7.1z"/><path id="XMLID_25_" class="st7" d="M553.8 522.5H382c-3.9 0-7-3.2-7-7V392.9c0-3.9 3.2-7 7-7h171.8c3.9 0 7 3.2 7 7v122.5c.1 3.9-3.1 7.1-7 7.1z"/><path id="XMLID_105_" class="st4" d="M560.9 407H375v-13.8c0-4 3.3-7.4 7.4-7.4H554c3.8 0 6.9 3.1 6.9 6.9z"/><path id="XMLID_26_" class="st7" d="M560.9 407H375v-13.8c0-4 3.3-7.4 7.4-7.4H554c3.8 0 6.9 3.1 6.9 6.9z"/><g id="XMLID_108_"><circle id="XMLID_106_" class="st3" cx="392.9" cy="396.5" r="3.3"/><circle id="XMLID_109_" class="st3" cx="403.8" cy="396.5" r="3.3"/><circle id="XMLID_120_" class="st3" cx="414.6" cy="396.5" r="3.3"/></g><path id="XMLID_122_" class="st11" d="M543.4 443.6H391.1c-1.1 0-2-.9-2-2v-21.3c0-1.1.9-2 2-2h152.3c1.1 0 2 .9 2 2v21.3c0 1.1-.9 2-2 2z"/><g id="XMLID_123_"><path id="XMLID_124_" class="st12" d="M434.9 470.3H391c-1.1 0-2-.9-2-2v-11.5c0-1.1.9-2 2-2h43.9c1.1 0 2 .9 2 2v11.5c0 1.1-.8 2-2 2z"/><path id="XMLID_125_" class="st13" d="M396.1 481.6h35.2"/><path id="XMLID_128_" class="st13" d="M396.1 492.9h35.2"/></g><g id="XMLID_127_"><path id="XMLID_131_" class="st12" d="M489.9 470.3H446c-1.1 0-2-.9-2-2v-11.5c0-1.1.9-2 2-2h43.9c1.1 0 2 .9 2 2v11.5c0 1.1-.9 2-2 2z"/><path id="XMLID_130_" class="st13" d="M451 481.6h33.8"/><path id="XMLID_129_" class="st13" d="M451 492.9h33.8"/></g><g id="XMLID_132_" class="st14"><path id="XMLID_135_" class="st3" d="M544.8 494.3h-43.9c-1.1 0-2-.9-2-2v-35.4c0-1.1.9-2 2-2h43.9c1.1 0 2 .9 2 2v35.4c0 1.1-.9 2-2 2z"/></g><g id="XMLID_126_" class="st15"><path id="XMLID_136_" class="st3" d="M543.4 505.6h-41.8c-1.6 0-2.8-1.3-2.8-2.8s1.3-2.8 2.8-2.8h41.8c1.6 0 2.8 1.3 2.8 2.8s-1.3 2.8-2.8 2.8z"/></g></g><g id="XMLID_23_" transform="translate(-84.7 -342.4)"><g id="XMLID_12_"><path id="XMLID_71_" class="st2" d="M229.2 613.4h-80.6c-1 0-1.9.3-2.6 1l-19.5 17c-1.8 1.6-1.8 4.4 0 5.9l19.5 17.3c.7.6 1.6 1.2 2.6 1.2h80.6c4.6 0 8.4-4.2 8.4-8.8v-25.5c-.1-4.4-3.8-8.1-8.4-8.1zm-82.8 25.9c-2.7 0-5-2.2-5-5s2.2-5 5-5 5 2.2 5 5-2.2 5-5 5z"/><path id="XMLID_70_" class="st16" d="M167.1 613.4h23.5v42.5h-23.5z"/><path id="XMLID_69_" class="st17" d="M190.6 613.4h23.5v42.5h-23.5z"/><path id="XMLID_58_" class="st18" d="M227.1 655.9h-13v-42.5h13.4c5.5 0 10.1 4.5 10.1 10.1v22c-.1 5.7-4.8 10.4-10.5 10.4z"/><path id="XMLID_117_" class="st6" d="M231.4 615.5c-.4-.1-.8-.1-1.2-.1h-80.6c-1 0-1.9.3-2.6 1l-19.5 17c-1.8 1.6-1.8 4.4 0 5.9l12.2 10.7 13.2 3.3c.6.2 1.3.2 2 .2 1.3 0 2.5-.3 3.7-.9l71.8-36.6c.3-.1.7-.3 1-.5zm-84 25.8c-2.7 0-5-2.2-5-5s2.2-5 5-5 5 2.2 5 5-2.2 5-5 5z"/><path id="XMLID_29_" class="st7" d="M229.2 613.4h-80.6c-1 0-1.9.3-2.6 1l-19.5 17c-1.8 1.6-1.8 4.4 0 5.9l19.5 17.3c.7.6 1.6 1.2 2.6 1.2h80.6c4.6 0 8.4-4.2 8.4-8.8v-25.5c-.1-4.4-3.8-8.1-8.4-8.1zm-82.8 25.9c-2.7 0-5-2.2-5-5s2.2-5 5-5 5 2.2 5 5-2.2 5-5 5z"/><path id="XMLID_17_" class="st7" d="M167.1 613.4h23.5v42.5h-23.5z"/><path id="XMLID_21_" class="st7" d="M190.6 613.4h23.5v42.5h-23.5z"/><path id="XMLID_22_" class="st7" d="M227.1 655.9h-13v-42.5h13.4c5.5 0 10.1 4.5 10.1 10.1v22c-.1 5.7-4.8 10.4-10.5 10.4z"/></g><g id="XMLID_20_"><path id="XMLID_74_" class="st2" d="M208.4 573l-71.8 36.6c-.9.4-1.5 1.2-1.9 2.1l-9.6 24c-.9 2.2.4 4.7 2.7 5.3l25.1 6.4c.9.2 1.9.1 2.8-.3l71.8-36.6c4.1-2.1 5.7-7.1 3.6-11.1l-11.6-22.7c-2.1-4.2-7.1-5.8-11.1-3.7z"/><path id="XMLID_77_" class="st19" transform="rotate(-27.031 193.875 603.895)" d="M182.2 582.9h23.5v42h-23.5z"/><path id="XMLID_33_" class="st7" d="M208.4 573l-71.8 36.6c-.9.4-1.5 1.2-1.9 2.1l-9.6 24c-.9 2.2.4 4.7 2.7 5.3l25.1 6.4c.9.2 1.9.1 2.8-.3l71.8-36.6c4.1-2.1 5.7-7.1 3.6-11.1l-11.6-22.7c-2.1-4.2-7.1-5.8-11.1-3.7z"/><circle id="XMLID_34_" class="st3" cx="144.2" cy="629.3" r="5.8"/><path id="XMLID_79_" class="st20" transform="rotate(-27.031 172.957 614.577)" d="M161.2 593.6h23.5v42h-23.5z"/><path id="XMLID_32_" class="st7" transform="rotate(-27.031 172.957 614.577)" d="M161.2 593.6h23.5v42h-23.5z"/><path id="XMLID_31_" class="st7" transform="rotate(-27.031 193.875 603.895)" d="M182.2 582.9h23.5v42h-23.5z"/><path id="XMLID_30_" class="st11" d="M225.9 611.2l-12 6.1-19.1-37.4 12-6.1c4.9-2.5 10.9-.6 13.5 4.4l10 19.6c2.5 4.9.5 10.9-4.4 13.4z"/><path id="XMLID_78_" class="st7" d="M225.9 611.2l-12 6.1-19.1-37.4 12-6.1c4.9-2.5 10.9-.6 13.5 4.4l10 19.6c2.5 4.9.5 10.9-4.4 13.4z"/></g></g><g id="XMLID_90_" transform="translate(-84.7 -342.4)"><path id="XMLID_102_" class="st2" d="M327 656.2h-67.3c-5.5 0-10-4.5-10-10V511.3c0-5.5 4.5-10 10-10H327c5.5 0 10 4.5 10 10v134.9c0 5.6-4.5 10-10 10z"/><path id="XMLID_83_" class="st11" d="M338.4 547.8h-88.7v-36.7c0-5.4 4.4-9.8 9.8-9.8H328c5.7 0 10.3 4.7 10.3 10.3v36.2z"/><path id="XMLID_10_" class="st7" d="M327 656.2h-67.3c-5.5 0-10-4.5-10-10V511.3c0-5.5 4.5-10 10-10H327c5.5 0 10 4.5 10 10v134.9c0 5.6-4.5 10-10 10z"/><path id="XMLID_82_" class="st4" d="M327.1 656.2H260c-5.7 0-10.4-4.7-10.4-10.4v-19.2H337v19.7c0 5.5-4.5 9.9-9.9 9.9z"/><path id="XMLID_81_" class="st7" d="M327.3 656.2H260c-5.7 0-10.4-4.7-10.4-10.4v-19.2H337v19.9c0 5.4-4.4 9.7-9.7 9.7z"/><circle id="XMLID_84_" class="st3" cx="294" cy="640.8" r="5"/><path id="XMLID_86_" class="st21" d="M269.4 563.3h49.3"/><path id="XMLID_87_" class="st21" d="M279.2 578.8h31"/><path id="XMLID_88_" class="st21" d="M269.4 592.9h49.3"/><circle id="XMLID_85_" class="st22" cx="294" cy="528.1" r="11.2"/><path id="XMLID_89_" class="st17" d="M310.2 608.4c0 3.1-2.5 5.6-5.6 5.6h-21.1c-3.1 0-5.6-2.5-5.6-5.6s2.5-5.6 5.6-5.6h21.1c3.1-.1 5.6 2.4 5.6 5.6z"/></g><g id="XMLID_111_" transform="translate(-84.7 -342.4)"><path id="XMLID_100_" class="st4" d="M848.2 637.9H605.9V492.3c0-4.3 3.5-7.8 7.8-7.8h226.8c4.2 0 7.6 3.4 7.6 7.6v145.8z"/><path id="XMLID_11_" class="st7" d="M848.8 638.2H606.6v-146c0-4.4 3.6-8 8-8h226.2c4.4 0 8 3.6 8 8z"/><path id="XMLID_101_" class="st23" transform="rotate(90 727.75 561.18)" d="M663.7 453.4h128.2v215.5H663.7z"/><path id="XMLID_183_" class="st8" d="M672.7 600.9h-18.6c-1.1 0-2-.9-2-2v-63.7c0-1.1.9-2 2-2h18.6c1.1 0 2 .9 2 2V599c0 1-.9 1.9-2 1.9z"/><path id="XMLID_178_" class="st8" d="M807 613.8H699.6c-2.2 0-4-1.8-4-4v-82.1c0-2.2 1.8-4 4-4H807c2.2 0 4 1.8 4 4v82.1c0 2.2-1.7 4-4 4z"/><path id="XMLID_103_" class="st7" transform="rotate(90 727.66 561.18)" d="M664.1 453.5h127.1v215.3H664.1z"/><path id="XMLID_110_" class="st2" d="M875.2 638.2H580.1v9.4c0 4.4 3.6 8 8 8h279.1c4.4 0 8-3.6 8-8z"/><path id="XMLID_206_" class="st24" d="M591.4 656.2H864c5.5 0 10-4.2 11-9.9H580.3c1 5.7 5.6 9.9 11.1 9.9z"/><path id="XMLID_15_" class="st7" d="M875.2 638.2H580.1v9.4c0 4.4 3.6 8 8 8h279.1c4.4 0 8-3.6 8-8z"/><path id="XMLID_201_" class="st16" d="M646.8 528.1h22.5v22.5h-22.5z"/><path id="XMLID_138_" class="st7" d="M647.2 528.3h22.5v22.5h-22.5z"/><path id="XMLID_180_" class="st7" d="M647.2 528.3h22.5v22.5h-22.5z"/><path id="XMLID_156_" class="st19" d="M646.8 550.6h22.5v22.5h-22.5z"/><path id="XMLID_140_" class="st7" d="M647.2 550.9h22.5v22.5h-22.5z"/><path id="XMLID_202_" class="st11" d="M646.8 573.1h22.5v22.5h-22.5z"/><path id="XMLID_143_" class="st7" d="M647.2 573.4h22.5v22.5h-22.5z"/><path id="XMLID_115_" class="st2" d="M800.5 606.9H693c-2.2 0-4-1.8-4-4v-82.1c0-2.2 1.8-4 4-4h107.5c2.2 0 4 1.8 4 4v82.1c0 2.3-1.8 4-4 4z"/><path id="XMLID_139_" class="st7" d="M800.5 606.9H693c-2.2 0-4-1.8-4-4v-82.1c0-2.2 1.8-4 4-4h107.5c2.2 0 4 1.8 4 4v82.1c0 2.3-1.8 4-4 4z"/><g id="XMLID_147_" class="st25"><g id="XMLID_205_"><path id="XMLID_419_" class="st26" d="M770.7 583.2v1.5h-1.5"/><path id="XMLID_418_" class="st27" d="M767.3 584.7h-41.9"/><path id="XMLID_417_" class="st26" d="M724.4 584.7h-1.5v-1.5"/><path id="XMLID_416_" class="st28" d="M722.9 581.1v-39"/><path id="XMLID_415_" class="st26" d="M722.9 541.1v-1.5h1.5"/><path id="XMLID_214_" class="st27" d="M726.3 539.6h41.9"/><path id="XMLID_213_" class="st26" d="M769.2 539.6h1.5v1.5"/><path id="XMLID_211_" class="st28" d="M770.7 543.1v39.1"/></g></g><g id="XMLID_155_"><path id="XMLID_154_" class="st2" d="M719.6 536.1h7.1v7.1h-7.1z"/><path id="XMLID_153_" class="st29" d="M719.3 535.8h7v7h-7z"/></g><g id="XMLID_157_"><path id="XMLID_159_" class="st2" d="M719.6 581.1h7.1v7.1h-7.1z"/><path id="XMLID_158_" class="st29" d="M719.3 580.9h7v7h-7z"/></g><g id="XMLID_162_"><path id="XMLID_166_" class="st2" d="M767.2 536.1h7.1v7.1h-7.1z"/><path id="XMLID_164_" class="st29" d="M767.2 535.8h7v7h-7z"/></g><g id="XMLID_196_"><path id="XMLID_198_" class="st2" d="M767.2 581.1h7.1v7.1h-7.1z"/><path id="XMLID_197_" class="st29" d="M767.2 580.9h7v7h-7z"/></g><g id="XMLID_229_"><g id="XMLID_225_"><path id="XMLID_230_" class="st2" d="M673.8 569.5l-15.3-7 7.1 15.2 6.9 3.6 4.8-4.8z"/><path id="XMLID_227_" class="st29" d="M673.8 569.5l-15.3-7 7.1 15.2 6.9 3.6 4.8-4.8z"/><circle id="XMLID_224_" class="st3" cx="667.5" cy="571.1" r="1.9"/><path id="XMLID_226_" class="st30" d="M658.5 562.5l7.9 7.9"/></g><path id="XMLID_231_" class="st2" transform="rotate(-45.001 676.684 580.598)" d="M673.3 578.1h6.8v4.9h-6.8z"/><path id="XMLID_228_" class="st29" transform="rotate(-45.001 676.684 580.598)" d="M673.3 578.1h6.8v4.9h-6.8z"/></g></g></svg>
<div>
<h3>Host static websites with Codeberg Pages!</h3>
<p>It's quick, easy, free & fast - just put your open source project's homepage, developer blog or web experiment into a Git repository at <a style="color: inherit; opacity: 0.6" href="https://codeberg.org">Codeberg</a>, and we'll do the rest.</p>
</div>
</div>
</div>
<div class="content">
<h3>Set up your website (legacy method)</h3>
<p>
<strong>This is currently the only method which supports custom domains.</strong> Support for custom domains with the new method is coming soon.
</p>
<details>
<summary>Show the legacy method</summary>
<div class="card" style="max-width: 80em; margin: 0 auto;">
<div class="row" style="gap: var(--content-and-card-spacing)">
<div class="col-lg">
<h4 class="text-center">
<span class="codeberg-number-circle">1</span>
Set up your repository
</h4>
<p>
Create a public repository named <code class="code">pages</code> to make the site available at the main subdomain.
</p>
<div class="codeberg-divider"><hr>or<hr></div>
<p>
Create a branch <code class="code">pages</code> in a public repository:<br>
<code class="code">git switch --orphan pages</code><br><code class="code">git rm --cached -r .</code>
</p>
</div>
<div class="col-lg">
<h4 class="text-center">
<span class="codeberg-number-circle">2</span>
Upload your files
</h4>
<p>
Push your static content, HTML, style, fonts, images or anything else.
</p>
<!--<div class="codeberg-divider">or</div>
<p>
Push the source for your page based on any static site generator, and <a href="">compile it with Codeberg CI</a>.
</p>-->
</div>
<div class="col-lg">
<h4 class="text-center">
<span class="codeberg-number-circle">3</span>
You're done!
</h4>
<p>
Access your new website using this link:<br>
<code class="code">https://USERNAME.codeberg.page[/REPOSITORY][/@BRANCH]</code>
</p>
<div class="codeberg-divider"><hr>or<hr></div>
<p>
To use a custom domain, create a file <code class="code">.domains</code> in your repository with the domain name you wish to use.
</p>
<p>
Then, add a DNS record for that domain:<br>
<code class="code">CNAME [[<i>branch</i>.]<i>repo</i>.]<i>user</i>.codeberg.page.</code>
</p>
<p>
Or for apex domains where CNAME doesn't work:<br>
<code class="code">ALIAS codeberg.page.</code><br>
<code class="code">TXT [[<i>branch</i>.]<i>repo</i>.]<i>user</i>.codeberg.page</code>
</p>
<p>
If ALIAS isn't supported, use add the <code class="code">TXT</code> record as described above, and use <code class="code">A</code>+<code class="code">AAAA</code> as following:
</p>
<div class="alert" role="alert">
Warning: Our IP addresses have changed in April 2025.
Please make sure to update your DNS records accordingly for your existing domains.
</div>
<p>
<code class="code">A 217.197.84.141</code><br>
<code class="code">AAAA 2a0a:4580:103f:c0de::2</code>
</p>
</div>
</div>
</div>
</details>
<h3>Set up your website (new method without CI)</h3>
<div class="card" style="max-width: 80em; margin: 0 auto;">
<div class="row" style="gap: var(--content-and-card-spacing)">
<div class="col-lg">
<h4 class="text-center">
<span class="codeberg-number-circle">1</span>
Set up your&nbsp;repository
</h4>
<p>
Create a public repository named <code class="code">pages</code> with a branch called <code class="code">pages</code> to make the site available at the main subdomain.
</p>
<div class="codeberg-divider"><hr>or<hr></div>
<p>
Create a branch <code class="code">pages</code> in a public repository:<br>
<code class="code">git switch --orphan pages</code><br><code class="code">git rm --cached -r .</code>
</p>
</div>
<div class="col-lg">
<h4 class="text-center">
<span class="codeberg-number-circle">2</span>
Set up deployment
</h4>
<p>
In the <b>Settings</b> for your repository, go to <b>Webhooks</b> and click <b>Add webhook</b>.
</p>
<p>
Select <b>Forgejo</b> from the drop down list of webhook types.
</p>
<p>
Set the <b>Target URL</b> to <code class="code">https://USERNAME.codeberg.page/REPOSITORY</code>, replacing <code class="code">USERNAME</code> with your user or organization name and <code class="code">REPOSITORY</code> with the name of your repository.
(If your repository is called <code class="code">pages</code>, omit it.)
</p>
<p>
Set the <b>Branch filter</b> to <code class="code">pages</code>.
</p>
<p>
Click <b>Add webhook</b>.
</p>
</div>
<div class="col-lg">
<h4 class="text-center">
<span class="codeberg-number-circle">3</span>
Upload your files and youre&nbsp;done!
</h4>
<p>
Push your static content, HTML, style, fonts, images or anything else. They will be accessible at <code class="code">https://USERNAME.codeberg.page[/REPOSITORY]</code>.
</p>
<!--<div class="codeberg-divider">or</div>
<p>
Push the source for your page based on any static site generator, and <a href="">compile it with Codeberg CI</a>.
</p>-->
</div>
</div>
</div>
<h3>Set up your website (new method with CI)</h3>
<p>
If you use a static site generator like Jekyll, Hugo, or any other similar tool, you can integrate deployment into the <a href="https://docs.codeberg.org/ci/actions/">Forgejo Actions</a> workflow which builds your site instead of using the webhook.
</p>
<p>
To learn how to do this, see <a href="https://docs.codeberg.org/codeberg-pages/">our documentation</a>.
</p>
</div>
</div>
</div>
<!-- Content wrapper end -->
</div>
<!-- Page wrapper end -->
</body>
</html>