summaryrefslogtreecommitdiff
path: root/micro/applications/vikunja.mmd
blob: 19195b7eacc648ab2b7280426a53dd1e4599c774 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
%%{init: {'theme': 'base', 'flowchart': {'nodeSpacing': 40, 'rankSpacing': 50}}}%%
flowchart LR
    subgraph vikunja_stack ["huitral 192.168.99.22 - Docker Compose"]
        direction TB

        subgraph vikunja_app ["vikunja"]
            direction TB
            vk_core["vikunja/vikunja<br/>Port: 3456<br/>VIKUNJA_SERVICE_PUBLICURL:<br/>https://vk.arauco.online"]
            vk_cli["CLI: /app/vikunja/vikunja<br/>user list | create | delete<br/>dump | restore | doctor"]
        end

        subgraph vikunja_db ["vikunja-db"]
            pg["postgres:16<br/>:5432 interne<br/>DB: vikunja<br/>User: vikunja"]
            pg_vol["/opt/vikunja/db<br/>-> /var/lib/postgresql/data"]
        end

        subgraph vikunja_files ["Stockage"]
            files_vol["/opt/vikunja/files"]
        end

        vk_core -->|"JDBC"| pg
    end

    subgraph oidc_conf ["OIDC Configuration"]
        direction TB
        oidc["VIKUNJA_AUTH_OPENIDCONNECT_*<br/>enabled: true<br/>redirecturl: vk.arauco.online<br/>/auth/openid/keycloak"]
        oidc_auto["Auto-creation compte<br/>au 1er login OIDC"]
    end

    subgraph keycloak_ext ["Keycloak npagnun .35"]
        direction TB
        kc["Realm chiruca<br/>Client: vikunja<br/>Roles: admin | editor | viewer"]
        google["-> Google IdP<br/>Identity Brokering"]
        kc --> google
    end

    subgraph caddy_ext ["Caddy araucaria .50"]
        caddy["vk.arauco.online<br/>HTTPS -> :3456"]
    end

    subgraph ha_ext ["Home Assistant huitral .22"]
        direction TB
        ha_hacs["HACS Integration<br/>Vikunja Todo"]
        ha_todo["Listes todo par utilisateur<br/>paul, anne, toshiro..."]
        ha_notify["Automations<br/>Notifications mobiles<br/>notify.mobile_app_*"]
        ha_hacs --> ha_todo
        ha_todo --> ha_notify
    end

    subgraph sync ["Synchronisation"]
        direction TB
        caldav["CalDAV<br/>vk.arauco.online/dav/<br/>principals/USER/"]
        ics["ICS<br/>vk.arauco.online<br/>/api/v1/projects/ID"]
        davx5["DAVx5<br/>Sync mobile"]
        caldav --> davx5
    end

    subgraph user_model ["Modele utilisateurs"]
        direction TB
        kc_user["Keycloak<br/>paul@gmail.com"]
        vk_user["Vikunja<br/>paul (auto OIDC)"]
        ha_user["HA<br/>paul (compte separe)"]
        kc_user -->|"OIDC"| vk_user
        kc_user -.->|"OIDC HACS"| ha_user
    end

    caddy -->|"HTTP"| vk_core
    oidc --> kc
    ha_hacs -->|"API REST"| vk_core
    vk_core --> sync

    classDef svcStyle fill:#1e4a2e,stroke:#4a9a6a,color:#a8e0c0
    classDef storStyle fill:#4a3a1e,stroke:#d9a84a,color:#f0d8a8
    classDef iamStyle fill:#4a1e3a,stroke:#d94a8a,color:#f0a8c8
    classDef netStyle fill:#1e3a5f,stroke:#4a90d9,color:#a8d0f0
    classDef haStyle fill:#1e4a4a,stroke:#4a9a9a,color:#a8e0e0
    classDef syncStyle fill:#3a3a1e,stroke:#9a9a4a,color:#e0e0a8
    classDef userStyle fill:#3a1e5f,stroke:#8a6ad9,color:#c8b0f0
    classDef configStyle fill:#2a3a4a,stroke:#6a8aaa,color:#b0d0e8

    class vk_core,vk_cli svcStyle
    class pg,pg_vol,files_vol storStyle
    class oidc,oidc_auto configStyle
    class kc,google iamStyle
    class caddy netStyle
    class ha_hacs,ha_todo,ha_notify haStyle
    class caldav,ics,davx5 syncStyle
    class kc_user,vk_user,ha_user userStyle