A POC pages-server written by some volunteers in their free time
  • Nix 47.2%
  • Rust 39.4%
  • TypeScript 6.1%
  • CSS 4.5%
  • Shell 2.8%
Find a file
Epsilon_02 6da089cb32
Some checks failed
ci/woodpecker/push/todo-check Pipeline was successful
ci/woodpecker/push/config-formatting Pipeline was successful
ci/woodpecker/push/check-licensing Pipeline was successful
ci/woodpecker/push/typos Pipeline was successful
ci/woodpecker/push/audit Pipeline was successful
ci/woodpecker/push/docker-ci-image Pipeline was successful
ci/woodpecker/cron/audit Pipeline was successful
ci/woodpecker/cron/docker-ci-image Pipeline failed
chore(ci): add username directly instead "from_secret" (#148)
<!--
SPDX-FileCopyrightText: 2025 Pages Server contributors

SPDX-License-Identifier: MIT OR Apache-2.0
-->

[x] I acknowledge and agree to the [Contribution Guidelines](https://codeberg.org/Codeberg/pages-server-v3/src/branch/main/CONTRIBUTING.md)

---

I didn't use the env-var on purpose because forgejo does not like uppercase... (experience from TODO-checker)

Reviewed-on: #148
Reviewed-by: crapStone <codeberg@crapstone.dev>
Co-authored-by: Epsilon_02 <epsilon_02+codeberg@mailbox.org>
Co-committed-by: Epsilon_02 <epsilon_02+codeberg@mailbox.org>
2025-12-08 00:34:10 +01:00
.cargo License under MIT OR Apache-2.0 and add CI flow for REUSE compliance (#33) 2025-04-18 15:14:28 +00:00
.forgejo build(nix): add treefmt (#126) 2025-10-09 00:17:25 +02:00
.helix fix/taplo-should-ignore-language-configuration (#136) 2025-10-18 12:52:30 +02:00
.woodpecker chore(ci): add username directly instead "from_secret" (#148) 2025-12-08 00:34:10 +01:00
crates bootstrap leptos-frontend (#93) 2025-10-16 15:19:36 +02:00
docs bootstrap leptos-frontend (#93) 2025-10-16 15:19:36 +02:00
etc build: package pages-server with crane (nix framework) (#130) 2025-10-10 21:45:17 +02:00
LICENSES docs: add scaffolding for documentation (#57) 2025-08-15 14:48:21 +02:00
nix fix/taplo-should-ignore-language-configuration (#136) 2025-10-18 12:52:30 +02:00
scripts build(nix): add treefmt (#126) 2025-10-09 00:17:25 +02:00
test_dir feat: basic config file (#51) 2025-05-25 21:35:39 +02:00
.editorconfig make project helix ready (#58) 2025-05-16 13:44:46 +00:00
.envrc improve nix development flake and add direnv support 2024-12-30 16:24:34 +01:00
.gitignore build(nix): add treefmt (#126) 2025-10-09 00:17:25 +02:00
.prettierignore docs: add scaffolding for documentation (#57) 2025-08-15 14:48:21 +02:00
book.toml build: package pages-server with crane (nix framework) (#130) 2025-10-10 21:45:17 +02:00
Cargo.lock chore(deps): update rust crate clap to v4.5.47 (#107) 2025-10-17 18:40:18 +02:00
Cargo.toml bootstrap leptos-frontend (#93) 2025-10-16 15:19:36 +02:00
CODEOWNERS chore: add CODEOWNERS file for automatic review assignment (#131) 2025-10-18 12:53:56 +02:00
CONTRIBUTING.md build(nix): add treefmt (#126) 2025-10-09 00:17:25 +02:00
Dockerfile.ci ci: expand-ci-image (#99) 2025-09-05 15:51:59 +02:00
flake.lock build: package pages-server with crane (nix framework) (#130) 2025-10-10 21:45:17 +02:00
flake.nix build: package pages-server with crane (nix framework) (#130) 2025-10-10 21:45:17 +02:00
README.md Add comment to README why the repo moved to my user 2025-12-07 23:05:42 +01:00
renovate.json build(nix): add treefmt (#126) 2025-10-09 00:17:25 +02:00
REUSE.toml build: package pages-server with crane (nix framework) (#130) 2025-10-10 21:45:17 +02:00
rust-analyzer.toml bootstrap leptos-frontend (#93) 2025-10-16 15:19:36 +02:00
rust-toolchain.toml bootstrap leptos-frontend (#93) 2025-10-16 15:19:36 +02:00
rustfmt.toml build: package pages-server with crane (nix framework) (#130) 2025-10-10 21:45:17 +02:00
taplo.toml fix/taplo-should-ignore-language-configuration (#136) 2025-10-18 12:52:30 +02:00
typos.toml build(nix): add treefmt (#126) 2025-10-09 00:17:25 +02:00

Please don't upload to GitHub Matrix status-badge License

We (@crapStone, @Epsilon_02, @JulianGmp) decided to move this project to my (@crapStone) user, because some people decided to deprecate the old pages-server and continue with git-pages. We completely stand behind this decision, because the old pages-server is killing Codeberg.org and this project was just too slow. Unfortunately we had to find out, that they went with git-pages, from the newsletter and some documentation PRs.

I (@crapStone) am very sorry for all the work you put in and never got a response from me. But we three will continue to work on this project, when our time allows it. The main change will be: this project is not an official Codeberg project and it is very unlikely, that it will be the future software behind the pages feature of Codeberg.

Pages Server v3

This project was started out of the need for a new pages-server to replace codeberg.org/Codeberg/pages-server. At the moment it is unclear if that will happen. Development will continue in any case and this can be seen as a self-hostable alternative for the pages server for forgejo in general. We will first collect requirements and discuss implementation details and then start implementing a PoC. After the working PoC we will implement the MVP to supersede the existing pages-server.

The old server will not be shut down immediately, we will leave it running for some time, because we don't know who uses it. There will be an easy migration to the new one (hopefully just one click), but not everything can be migrated automatically.

Roadmap

The current roadmap is just a rough approximation. It will change frequently as we refine it. We also won't set specific dates to certain features, because this is an open-source project that is programmed by volunteers in their free time.

  1. 🛠 - PoC with the new architecture
    • webhook based pulling of repositories
    • push endpoint for artifacts from CI builds
    • external storage (external to the forge git repos)
    • server that hosts static files
    • simple UI for users and admins
  2. 🚧 - MVP with most of the functionality of the old pages-server
    • custom domains
    • redirects
    • compression
    • OCSP stapling
    • ...
  3. 🚧 - Open-Beta test for all Codeberg users still under a temporary domain
  4. 🚧 - Go-live under codeberg.page with the old pages-server running behind the new one for repositories the new pages-server couldn't find

Explanation of symbols: 🛠 = in progress, 🚧 = planned

Development

Want to help the development of the pages server? Take a look at our contribution guidelines as well as our documentation TODO(#52).

Toolchain

This repository uses rust-toolchain.toml for consistent toolchain management with rustup and the Nix development environment via flake.nix.

Helix

If you have nix flakes installed and want to use the Helix editor you just have to run:

nix develop .#helix -c $SHELL

Nightly toolchain in Nix

To use the nightly toolchain in nix development environment use the wrapper command cargo-nightly.

Extra stuff

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this repository are to be interpreted as described in RFC2119.