mirror of
https://codeberg.org/Codeberg/pages-server.git
synced 2025-04-29 01:23:35 +02:00
1.5 KiB
1.5 KiB
Architecture
package | description | depends on |
---|---|---|
main.go | init app in cmd/* | cmd, server/version |
cmd | start app, read config from args and env vars, validate args | server/{cache,certificates,gitea,handler}, github.com/urfave/cli |
server/cache | create key/value cache based con settings | github.com/OrlovEvgeny/go-mcache |
server/database | create cert database witch persist certs for main and custom domain | github.com/go-acme/lego/v4/{certcrypto,certificate}, xorm.io/xorm |
server/certificates | request, mock, manage certificates via acme | server/{cache,context,database,dns,gitea,utils}, github.com/go-acme/lego/v4/{registration,providers/dns,upstream} |
server/context | smal wrapper for net/http response and requests | server/utils |
server/dns | handle dns lookups for custom domains | server/cache |
server/gitea | handle all gitea-backend calls and it's caching | server/cache, code.gitea.io/sdk/gitea |
server/handler | take all http(s) requests and determine how they need to be threated (default pages, custom domain, ...). it does however not serve stuff | html,server/{cache,context,dns,gitea,upstream,version} |
server/upstream | try to serve stuff based on args from handler | html,server/{cache,context,gitea} |
server/utils | general purpose functions | |
server/version | just store the program version |
Concepts
Each package creates a client that others can use e.g.:
- server/gitea -> GiteaClient
- server/certificates -> AcmeClient
- ...