Watch
1
0
Fork
You've already forked Lumina
0
mirror of synced 2026-09-11 12:52:53 +02:00
  • Gleam 85.9%
  • Just 7.9%
  • CSS 4.8%
  • Nix 0.9%
  • Erlang 0.3%
  • Other 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
MLC Bloeiman 5d16e4d0cd Docs: fix broken links by pointing to ATProto did
Signed-off-by: MLC Bloeiman <mar@strawmelonjuice.com>
2026-09-08 13:52:03 +02:00
.tangled/workflows test: Integrate and automate tests further 2026-08-31 14:47:00 +02:00
db feat: Update to unreleased ewe@5! 2026-08-31 14:47:00 +02:00
docs docs: Reflect that Tailwind is no longer used. 2026-08-31 14:46:59 +02:00
docs-new/development docs: Clarification around mirror usage. 2026-08-31 14:47:00 +02:00
lumina docs: Clarification around mirror usage. 2026-08-31 14:47:00 +02:00
.editorconfig Re-introduce editorconfig 2026-08-31 14:46:59 +02:00
.elp.toml dev: We add a lil ELP 2026-08-31 14:46:59 +02:00
.envrc chore(dev env): Remove flake for a default.nix 2026-08-31 14:46:59 +02:00
.gitignore feat: Embed documentation into server 2026-08-31 14:46:59 +02:00
CONTRIBUTING.MD docs: Clarification around mirror usage. 2026-08-31 14:47:00 +02:00
CONTRIBUTORS Suprised I got a visual 2026-08-31 14:46:59 +02:00
default.nix chore: Update gleam to 19bf20 2026-09-08 13:32:55 +02:00
deno.json Rewrite the flake and justfile 2026-08-31 14:46:59 +02:00
deno.lock Rewrite the flake and justfile 2026-08-31 14:46:59 +02:00
justfile Docs: fix broken links by pointing to ATProto did 2026-09-08 13:52:03 +02:00
LICENCE docs: Clarification around mirror usage. 2026-08-31 14:47:00 +02:00
README.md meta: development branch is now main branch. 2026-08-31 14:47:00 +02:00
robots.txt docs: Clarification around mirror usage. 2026-08-31 14:47:00 +02:00
shell.nix chore(dev env): Remove flake for a default.nix 2026-08-31 14:46:59 +02:00

Lumina(/peonies) server

Notice: This project lives on Radicle, it is mirrored to Tangled, Codeberg (outdated) and a few other places, but the main development happens on Radicle. Please report issues and contribute on Radicle or Tangled, you may also request a contribution account for my personal Forgejo.

Lumina is a project in development, as the short description says "Just trying out an old concept.". It is not in any way ready for you to try. However, you are encouraged to contribute in any way!

Currently, as no stable is produced yet, code in the main branch can move fast, for bigger changes, feature branches and forks are still prefered.

Developing info

Developing

Using the nix dev shell and the just task runner is recommended, as this ensures the environment is properly set.

TIP:

If you save a lot and prefer not to have the OTP Observer be restarted every time you save a file, try unset LUMINA_DEBUG.

just dev # Prepares your enviroment and builds/runs the server with file watching.

Run just --list to see all possible recipes.

When running Lumina server in development mode, it automatically creates two accounts for you and one of those has an attached post on the global timeline.

Username Email Password
testuser1 test@lumina123.co MyTestPassw9292!
testuser2 test@lumina234.co MyTestPassw9292!

Package relationships (outdated)

---
config:
  layout: dagre
---
flowchart TB
 subgraph actors["🤹 Backend actors"]
        web{{"Webserver"}}
        iic{{"Interinstance communication"}}
        session[("Session Controller")]
        ssc(["Server Side Component"])
        storagecontroller{{"Storage controller"}}
  end
 subgraph Subgraph1["↙️ Server side"]
        backend["Lumina backend"]
        actors
  end
 subgraph Subgraph2["↗️ Client side"]
        spa(("SPA web client"))
  end
 subgraph Subgraph3["🌐 Interinstance"]
        instance[("External Lumina backend")]
  end
 subgraph Storage["💾 Storage"]
        pg["Postgres"]
        ets["ETS"]
  end
 subgraph Subgraph5["🧩 Packages"]
        package_backend["./lumina/backend"]
        package_components["./lumina/web/components"]
        package_spa["./lumina/web/initialiser"]
  end
    backend <--> web & iic & Storage
    web <--> session
    session <--> backend
    web -- serves --> spa
    spa -- loads --> ssc
    ssc <-- websocket --> session
    instance <--> iic
    ets <--> storagecontroller
    storagecontroller --> pg
    backend ==> package_backend
    ssc ==> package_components
    spa ==> package_spa

    pg@{ shape: disk}
    ets@{ shape: das}
    linkStyle 0 stroke:#00C853,fill:none
    linkStyle 1 stroke:#00C853,fill:none
    linkStyle 2 stroke:#00C853,fill:none
    linkStyle 3 stroke:#00C853,fill:none
    linkStyle 4 stroke:#00C853,fill:none
    linkStyle 5 stroke:#00C853,fill:none
    linkStyle 6 stroke:#00C853,fill:none
    linkStyle 8 stroke:#00C853,fill:none
    linkStyle 9 stroke:#00C853,fill:none
    linkStyle 10 stroke:#00C853
    linkStyle 11 stroke:#E1BEE7,fill:none
    linkStyle 12 stroke:#E1BEE7,fill:none
    linkStyle 13 stroke:#E1BEE7,fill:none