gitea_pages/README.md

1.7 KiB

gitea_pages

Containerized web application for managing public pages of Git repositories within a single Gitea instance.

@startuml
footer "Gitea Pages Deployment"

actor "User" as user

rectangle "DNS" as dns {
  agent "*.dgpkg.net" as wildcard
  agent "dgpkg.net" as domain
}

cloud "Cloudflare" as cloudflare

user <--> wildcard
user <--> domain

wildcard <..> cloudflare
domain <..> cloudflare

rectangle "Gitea Pages" {
    node "Nginx" as nginx
    database "DB" as db
    node "Adminer" as adminer
    queue "RabbitMQ" as rabbitmq

    node "git.dergrimm.net/gitea_pages_backend" {
    node "Migration Runner" as migration_runner
    node "Worker" as worker
    node "Beat" as beat
    node "API" as api
    }

    rectangle "git.dergrimm.net/gitea_pages_frontend" {
    node frontend
    }

    rectangle "Storage" {
        storage "nginx-config" as storage_nginx_config
        storage "db" as storage_db
        storage "rabbitmq" as storage_rabbitmq
        storage "repos" as storage_repos
    }

    db <..> storage_db

    adminer <--> db
    migration_runner --> db
    api <--> db
    worker <--> db

    rabbitmq <..> storage_rabbitmq

    beat --> rabbitmq
    worker <--> rabbitmq

    card "Depends On" as depends_on_migration_runner

    api ~~ depends_on_migration_runner
    beat ~~ depends_on_migration_runner
    api ~~ depends_on_migration_runner
    depends_on_migration_runner ..> migration_runner

    worker ..> storage_nginx_config
    worker ..> storage_repos
}

cloudflare ..> nginx

nginx <--> adminer
nginx <--> rabbitmq
nginx <--> api
nginx <--> frontend

nginx <.. storage_repos : "Public pages"
nginx <.. storage_nginx_config : "Gets domain config"
@enduml

I really don't like this diagram at all