# 🧠 AI-Impress Infrastructure Snapshot (Sat Nov  1 21:25:57 UTC 2025)

## 🏷️ System Info
 Static hostname: ai-impress-prod
       Icon name: computer-vm
         Chassis: vm 🖴
      Machine ID: 2c3c6d97e54246e9bcfdeb513b8947f3
         Boot ID: e0fb6e0813b54674ac1ca99a87864c74
  Virtualization: kvm
Operating System: Ubuntu 24.04.3 LTS
          Kernel: Linux 6.8.0-86-generic
    Architecture: x86-64
 Hardware Vendor: OpenStack Foundation
  Hardware Model: OpenStack Nova
Firmware Version: 1.16.3-debian-1.16.3-2~bpo12+1
   Firmware Date: Tue 2014-04-01
    Firmware Age: 11y 7month 2d

### Uptime / Load / Memory
 21:25:58 up 8 days,  4:51,  9 users,  load average: 1.05, 1.15, 1.15
               total        used        free      shared  buff/cache   available
Mem:            57Gi        13Gi       2.1Gi       705Mi        43Gi        44Gi
Swap:          4.0Gi          0B       4.0Gi
Filesystem     Type   Size  Used Avail Use% Mounted on
/dev/sda1      ext4   387G   55G  333G  15% /
/dev/sda16     ext4   881M  117M  703M  15% /boot
/dev/sda15     vfat   105M  6.2M   99M   6% /boot/efi
/dev/sdc       ext4   393G  5.4G  368G   2% /mnt/backups
/dev/sdb       ext4   295G  411M  279G   1% /mnt/psql-data

## 🌐 Network Configuration
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether fa:16:3e:81:b6:86 brd ff:ff:ff:ff:ff:ff
    altname enp0s3
    inet 51.89.231.46/32 metric 100 scope global dynamic ens3
       valid_lft 68893sec preferred_lft 68893sec
3: br-9e103eeb0591: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether be:a0:9b:47:43:10 brd ff:ff:ff:ff:ff:ff
    inet 172.16.4.1/24 brd 172.16.4.255 scope global br-9e103eeb0591
       valid_lft forever preferred_lft forever
4: br-c797531af13d: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 9a:bd:0b:27:89:89 brd ff:ff:ff:ff:ff:ff
    inet 172.16.1.1/24 brd 172.16.1.255 scope global br-c797531af13d
       valid_lft forever preferred_lft forever
2565: veth65aed99@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-cdaceadfcefb state UP group default 
    link/ether 86:2d:fb:cb:e2:25 brd ff:ff:ff:ff:ff:ff link-netnsid 16
5: br-cdaceadfcefb: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether f6:6d:ef:8e:77:cf brd ff:ff:ff:ff:ff:ff
    inet 172.19.0.1/16 brd 172.19.255.255 scope global br-cdaceadfcefb
       valid_lft forever preferred_lft forever
2566: veth16cb9ad@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-cdaceadfcefb state UP group default 
    link/ether a6:2a:20:b0:e7:b4 brd ff:ff:ff:ff:ff:ff link-netnsid 18
2823: vethc366312@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-36cf0e468fc7 state UP group default 
    link/ether 9e:83:23:15:59:8c brd ff:ff:ff:ff:ff:ff link-netnsid 22
2567: veth07a5107@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-cdaceadfcefb state UP group default 
    link/ether 1a:e4:43:87:fa:e7 brd ff:ff:ff:ff:ff:ff link-netnsid 25
7: br-4bc92c6c74a8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether e2:1c:73:85:12:c1 brd ff:ff:ff:ff:ff:ff
    inet 172.21.0.1/16 brd 172.21.255.255 scope global br-4bc92c6c74a8
       valid_lft forever preferred_lft forever
2568: veth78648b3@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-cdaceadfcefb state UP group default 
    link/ether 96:67:39:9a:c8:b9 brd ff:ff:ff:ff:ff:ff link-netnsid 26
2057: veth625e980@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-b28f70541993 state UP group default 
    link/ether 32:32:21:1c:74:71 brd ff:ff:ff:ff:ff:ff link-netnsid 12
9: br-a0dd7c187961: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 12:80:99:03:db:45 brd ff:ff:ff:ff:ff:ff
    inet 172.16.6.1/24 brd 172.16.6.255 scope global br-a0dd7c187961
       valid_lft forever preferred_lft forever
2570: veth3b56756@if3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-01cd476e5307 state UP group default 
    link/ether d2:f5:4f:43:f2:8a brd ff:ff:ff:ff:ff:ff link-netnsid 16
2058: veth0c573c7@if3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-cdaceadfcefb state UP group default 
    link/ether 02:9e:7a:57:c7:23 brd ff:ff:ff:ff:ff:ff link-netnsid 12
10: br-b28f70541993: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether ca:b0:f9:f1:54:90 brd ff:ff:ff:ff:ff:ff
    inet 172.18.0.1/16 brd 172.18.255.255 scope global br-b28f70541993
       valid_lft forever preferred_lft forever
2571: vethf89b2c9@if3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-01cd476e5307 state UP group default 
    link/ether 86:4c:f7:6f:4b:a4 brd ff:ff:ff:ff:ff:ff link-netnsid 18
2828: veth2f72c27@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-36cf0e468fc7 state UP group default 
    link/ether 42:3d:50:1e:80:dc brd ff:ff:ff:ff:ff:ff link-netnsid 4
2572: veth6d54b41@if3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-01cd476e5307 state UP group default 
    link/ether 8a:be:91:00:65:ff brd ff:ff:ff:ff:ff:ff link-netnsid 25
12: br-01cd476e5307: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether a2:6e:38:f6:4d:f9 brd ff:ff:ff:ff:ff:ff
    inet 172.22.0.1/16 brd 172.22.255.255 scope global br-01cd476e5307
       valid_lft forever preferred_lft forever
2573: veth3a613a3@if3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-01cd476e5307 state UP group default 
    link/ether 92:ca:83:d0:0c:c9 brd ff:ff:ff:ff:ff:ff link-netnsid 26
2574: veth63e6100@if4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-b28f70541993 state UP group default 
    link/ether 5e:f5:b1:a1:83:ed brd ff:ff:ff:ff:ff:ff link-netnsid 26
14: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 72:42:ff:0d:d2:fb brd ff:ff:ff:ff:ff:ff
    inet 172.16.0.1/24 brd 172.16.0.255 scope global docker0
       valid_lft forever preferred_lft forever
3599: veth4020792@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-cdaceadfcefb state UP group default 
    link/ether 4e:22:49:58:53:28 brd ff:ff:ff:ff:ff:ff link-netnsid 33
3600: veth47e5b6a@if3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-b28f70541993 state UP group default 
    link/ether e6:5f:6d:49:ec:80 brd ff:ff:ff:ff:ff:ff link-netnsid 33
3601: veth5f17395@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default 
    link/ether 8e:a6:c0:c2:91:33 brd ff:ff:ff:ff:ff:ff link-netnsid 57
2577: veth69a280d@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-01cd476e5307 state UP group default 
    link/ether 5e:eb:29:e5:23:c2 brd ff:ff:ff:ff:ff:ff link-netnsid 15
17: vethbfd4268@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-c797531af13d state UP group default 
    link/ether c6:9a:ad:5f:e0:87 brd ff:ff:ff:ff:ff:ff link-netnsid 2
3090: veth8b8842d@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-36cf0e468fc7 state UP group default 
    link/ether 5e:46:aa:14:c9:43 brd ff:ff:ff:ff:ff:ff link-netnsid 39
2578: veth91722d6@if3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-cdaceadfcefb state UP group default 
    link/ether de:1a:2a:4c:a9:48 brd ff:ff:ff:ff:ff:ff link-netnsid 15
3091: veth722f0df@if3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-b28f70541993 state UP group default 
    link/ether 9e:e9:63:6f:a2:3d brd ff:ff:ff:ff:ff:ff link-netnsid 39
3092: veth1f3a87f@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default 
    link/ether 9a:ae:98:75:51:0d brd ff:ff:ff:ff:ff:ff link-netnsid 42
20: veth1322dc1@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-b28f70541993 state UP group default 
    link/ether ca:e1:5f:9c:2c:c3 brd ff:ff:ff:ff:ff:ff link-netnsid 5
2581: vethc376b58@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-f2be33f79fe4 state UP group default 
    link/ether a6:0b:a0:1d:4b:83 brd ff:ff:ff:ff:ff:ff link-netnsid 7
2582: veth5e0ec18@if3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-b28f70541993 state UP group default 
    link/ether 16:26:cf:72:66:44 brd ff:ff:ff:ff:ff:ff link-netnsid 7
3608: br-d34729d1af35: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether be:c9:46:0b:79:67 brd ff:ff:ff:ff:ff:ff
    inet 172.16.10.1/24 brd 172.16.10.255 scope global br-d34729d1af35
       valid_lft forever preferred_lft forever
3105: veth8474bc8@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default 
    link/ether 4a:54:06:16:11:a4 brd ff:ff:ff:ff:ff:ff link-netnsid 53
3106: veth7005987@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default 
    link/ether 86:05:0c:8b:38:e8 brd ff:ff:ff:ff:ff:ff link-netnsid 54
3107: vetha0db192@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default 
    link/ether ee:54:13:8f:65:c1 brd ff:ff:ff:ff:ff:ff link-netnsid 55
3108: vethaf527c5@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default 
    link/ether 2a:d3:ba:33:88:fb brd ff:ff:ff:ff:ff:ff link-netnsid 56
3880: veth426686f@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-b28f70541993 state UP group default 
    link/ether b6:f2:0d:b4:fe:b4 brd ff:ff:ff:ff:ff:ff link-netnsid 23
1065: veth0f5f4e4@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-cdaceadfcefb state UP group default 
    link/ether 16:d4:ff:19:f0:46 brd ff:ff:ff:ff:ff:ff link-netnsid 0
3883: veth2c25246@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-547232eeb015 state UP group default 
    link/ether 0e:d7:fa:48:43:7b brd ff:ff:ff:ff:ff:ff link-netnsid 35
3884: veth3704c22@if3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-b28f70541993 state UP group default 
    link/ether a2:29:ba:d3:34:e7 brd ff:ff:ff:ff:ff:ff link-netnsid 35
3886: veth9cd1431@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-547232eeb015 state UP group default 
    link/ether aa:e9:4e:d5:30:c9 brd ff:ff:ff:ff:ff:ff link-netnsid 36
3888: veth13b9456@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-547232eeb015 state UP group default 
    link/ether 46:d4:74:e2:79:a4 brd ff:ff:ff:ff:ff:ff link-netnsid 19
49: veth723fa43@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-cdaceadfcefb state UP group default 
    link/ether fa:ac:bd:4b:69:b0 brd ff:ff:ff:ff:ff:ff link-netnsid 32
3890: veth4878c9d@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-547232eeb015 state UP group default 
    link/ether 46:d0:27:ba:a5:de brd ff:ff:ff:ff:ff:ff link-netnsid 10
3897: veth9821b90@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-cdaceadfcefb state UP group default 
    link/ether ce:a9:a0:b0:65:c8 brd ff:ff:ff:ff:ff:ff link-netnsid 66
3898: veth2a3a3d3@if3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-b28f70541993 state UP group default 
    link/ether a2:60:8c:2b:e1:c5 brd ff:ff:ff:ff:ff:ff link-netnsid 66
2362: veth49ffcef@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-b28f70541993 state UP group default 
    link/ether 5e:b2:6e:7a:f4:10 brd ff:ff:ff:ff:ff:ff link-netnsid 14
2363: vethe2eb8a1@if3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-e581070d94e4 state UP group default 
    link/ether 5a:57:e5:19:a7:de brd ff:ff:ff:ff:ff:ff link-netnsid 14
3651: veth38fd68b@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default 
    link/ether 2a:96:28:80:69:4c brd ff:ff:ff:ff:ff:ff link-netnsid 58
3652: vethed4e3a5@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default 
    link/ether 26:8b:37:74:73:99 brd ff:ff:ff:ff:ff:ff link-netnsid 59
1360: br-36cf0e468fc7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether aa:b9:17:52:0d:54 brd ff:ff:ff:ff:ff:ff
    inet 172.16.2.1/24 brd 172.16.2.255 scope global br-36cf0e468fc7
       valid_lft forever preferred_lft forever
3665: vethff1e3cf@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default 
    link/ether 82:a7:bc:68:bd:59 brd ff:ff:ff:ff:ff:ff link-netnsid 60
3666: veth1ce56dd@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default 
    link/ether 5a:82:39:c6:82:49 brd ff:ff:ff:ff:ff:ff link-netnsid 62
1363: vethbfe9bc3@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-36cf0e468fc7 state UP group default 
    link/ether da:96:a8:5a:c9:eb brd ff:ff:ff:ff:ff:ff link-netnsid 8
1364: vethc33f825@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-36cf0e468fc7 state UP group default 
    link/ether ee:c3:e5:52:5d:84 brd ff:ff:ff:ff:ff:ff link-netnsid 17
1365: veth91ccc1d@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-36cf0e468fc7 state UP group default 
    link/ether 16:21:eb:ca:fa:48 brd ff:ff:ff:ff:ff:ff link-netnsid 21
3670: vethb19a544@if3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-b28f70541993 state UP group default 
    link/ether 0a:c3:a2:37:c1:1a brd ff:ff:ff:ff:ff:ff link-netnsid 0
1367: vethff19a20@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-36cf0e468fc7 state UP group default 
    link/ether be:c3:91:83:25:c0 brd ff:ff:ff:ff:ff:ff link-netnsid 27
1368: vethe901bb9@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-36cf0e468fc7 state UP group default 
    link/ether 02:79:d7:28:3e:8f brd ff:ff:ff:ff:ff:ff link-netnsid 29
3673: vetha1d81eb@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default 
    link/ether ea:a4:2c:f0:b8:99 brd ff:ff:ff:ff:ff:ff link-netnsid 63
1369: vethbcb0045@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-36cf0e468fc7 state UP group default 
    link/ether 72:8d:d2:ad:d4:74 brd ff:ff:ff:ff:ff:ff link-netnsid 31
1370: veth8e03257@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-36cf0e468fc7 state UP group default 
    link/ether fa:2f:00:ff:a4:5e brd ff:ff:ff:ff:ff:ff link-netnsid 38
2654: vethac62c71@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-05057d2fe236 state UP group default 
    link/ether 4a:cd:22:87:a3:0c brd ff:ff:ff:ff:ff:ff link-netnsid 41
1374: vethbb142dc@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-36cf0e468fc7 state UP group default 
    link/ether be:f3:f8:b3:a4:de brd ff:ff:ff:ff:ff:ff link-netnsid 61
2657: veth5d714e9@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-cdaceadfcefb state UP group default 
    link/ether fe:4d:aa:8c:d8:bf brd ff:ff:ff:ff:ff:ff link-netnsid 50
2658: veth84a440e@if3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-05057d2fe236 state UP group default 
    link/ether a6:11:78:d4:8c:f6 brd ff:ff:ff:ff:ff:ff link-netnsid 50
1640: br-f2be33f79fe4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether ba:69:19:94:1c:7a brd ff:ff:ff:ff:ff:ff
    inet 172.16.3.1/24 brd 172.16.3.255 scope global br-f2be33f79fe4
       valid_lft forever preferred_lft forever
1128: veth054e629@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-cdaceadfcefb state UP group default 
    link/ether 52:b6:00:61:9a:d4 brd ff:ff:ff:ff:ff:ff link-netnsid 28
1641: veth08ed7bf@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-f2be33f79fe4 state UP group default 
    link/ether 0e:f8:46:1c:99:dd brd ff:ff:ff:ff:ff:ff link-netnsid 3
1129: vethdb9dce3@if3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-b28f70541993 state UP group default 
    link/ether e6:4d:45:e7:be:1c brd ff:ff:ff:ff:ff:ff link-netnsid 28
2932: vethc308c90@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-4bc92c6c74a8 state UP group default 
    link/ether 22:2b:83:f8:d6:29 brd ff:ff:ff:ff:ff:ff link-netnsid 1
2933: veth4007d4a@if3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-b28f70541993 state UP group default 
    link/ether 82:73:57:40:fd:2d brd ff:ff:ff:ff:ff:ff link-netnsid 1
1656: vethe510a0c@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-b28f70541993 state UP group default 
    link/ether 26:e7:ea:04:47:a0 brd ff:ff:ff:ff:ff:ff link-netnsid 9
1657: veth872c6ab@if3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-39a0028fdb88 state UP group default 
    link/ether ee:c5:a8:a0:bf:7e brd ff:ff:ff:ff:ff:ff link-netnsid 9
3725: vethc6a8f8f@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default 
    link/ether 32:11:f1:5b:dc:50 brd ff:ff:ff:ff:ff:ff link-netnsid 64
912: br-39a0028fdb88: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether f2:66:a7:91:d0:c8 brd ff:ff:ff:ff:ff:ff
    inet 172.16.7.1/24 brd 172.16.7.255 scope global br-39a0028fdb88
       valid_lft forever preferred_lft forever
2196: br-e581070d94e4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 26:cc:f7:d4:db:83 brd ff:ff:ff:ff:ff:ff
    inet 172.16.5.1/24 brd 172.16.5.255 scope global br-e581070d94e4
       valid_lft forever preferred_lft forever
2197: vetheb0949b@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-e581070d94e4 state UP group default 
    link/ether b2:0b:43:52:16:b5 brd ff:ff:ff:ff:ff:ff link-netnsid 11
2198: veth613fdc6@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-e581070d94e4 state UP group default 
    link/ether d2:35:09:6c:c1:e2 brd ff:ff:ff:ff:ff:ff link-netnsid 13
1955: veth66db31c@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-b28f70541993 state UP group default 
    link/ether 66:0e:0a:02:e9:fe brd ff:ff:ff:ff:ff:ff link-netnsid 34
1958: vethc66dc6d@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-cdaceadfcefb state UP group default 
    link/ether c6:63:59:51:58:54 brd ff:ff:ff:ff:ff:ff link-netnsid 37
2983: vethebf797d@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-36cf0e468fc7 state UP group default 
    link/ether fe:a0:49:a1:4a:27 brd ff:ff:ff:ff:ff:ff link-netnsid 6
1959: veth2d1f310@if3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-b28f70541993 state UP group default 
    link/ether 4a:79:da:e4:7e:43 brd ff:ff:ff:ff:ff:ff link-netnsid 37
3752: vethb83e2e6@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-cdaceadfcefb state UP group default 
    link/ether 02:44:b3:3e:e1:fb brd ff:ff:ff:ff:ff:ff link-netnsid 52
3753: veth8b46a08@if3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-b28f70541993 state UP group default 
    link/ether 16:7a:0c:62:4d:d8 brd ff:ff:ff:ff:ff:ff link-netnsid 52
3754: veth05911b9@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default 
    link/ether 4a:1f:18:2b:ec:74 brd ff:ff:ff:ff:ff:ff link-netnsid 65
1963: veth43fde68@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-36cf0e468fc7 state UP group default 
    link/ether 6a:04:ce:ec:55:fc brd ff:ff:ff:ff:ff:ff link-netnsid 47
1707: vethc083d06@if3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-f2be33f79fe4 state UP group default 
    link/ether 92:f7:d3:30:86:d4 brd ff:ff:ff:ff:ff:ff link-netnsid 51
1200: veth20c1975@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-b28f70541993 state UP group default 
    link/ether 42:f8:2f:c6:6c:81 brd ff:ff:ff:ff:ff:ff link-netnsid 20
1211: veth8597fc6@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-b28f70541993 state UP group default 
    link/ether 06:27:a2:bb:11:c0 brd ff:ff:ff:ff:ff:ff link-netnsid 30
1212: veth836ea35@if3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-cdaceadfcefb state UP group default 
    link/ether 6e:db:60:1e:a1:4e brd ff:ff:ff:ff:ff:ff link-netnsid 30
1215: veth7726e04@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-b28f70541993 state UP group default 
    link/ether a2:5e:7f:c5:94:a1 brd ff:ff:ff:ff:ff:ff link-netnsid 24
1216: veth1996ac2@if3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-cdaceadfcefb state UP group default 
    link/ether 76:26:80:a7:3a:f8 brd ff:ff:ff:ff:ff:ff link-netnsid 24
2504: br-05057d2fe236: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether fe:d8:06:eb:a6:55 brd ff:ff:ff:ff:ff:ff
    inet 172.16.9.1/24 brd 172.16.9.255 scope global br-05057d2fe236
       valid_lft forever preferred_lft forever
2515: veth364187b@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-05057d2fe236 state UP group default 
    link/ether 96:7d:6a:93:27:a3 brd ff:ff:ff:ff:ff:ff link-netnsid 40
2517: veth8e9f6d1@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-05057d2fe236 state UP group default 
    link/ether 3a:c9:dd:37:18:1f brd ff:ff:ff:ff:ff:ff link-netnsid 43
2519: vethf854e89@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-05057d2fe236 state UP group default 
    link/ether e6:5e:e0:f5:84:10 brd ff:ff:ff:ff:ff:ff link-netnsid 45
2521: vethf5b26b7@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-05057d2fe236 state UP group default 
    link/ether 7e:55:b8:ce:d5:01 brd ff:ff:ff:ff:ff:ff link-netnsid 44
1248: veth7a5b50e@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-b28f70541993 state UP group default 
    link/ether 86:cc:21:ba:df:da brd ff:ff:ff:ff:ff:ff link-netnsid 51
2543: vethd9a255f@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-05057d2fe236 state UP group default 
    link/ether 26:ce:79:c8:72:72 brd ff:ff:ff:ff:ff:ff link-netnsid 48
2545: veth9416449@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-05057d2fe236 state UP group default 
    link/ether 82:49:fd:46:fb:7a brd ff:ff:ff:ff:ff:ff link-netnsid 46
2546: veth1eaa943@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-05057d2fe236 state UP group default 
    link/ether ca:b2:db:63:00:a4 brd ff:ff:ff:ff:ff:ff link-netnsid 49
2804: br-547232eeb015: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether c2:a5:a3:e0:38:1e brd ff:ff:ff:ff:ff:ff
    inet 172.16.8.1/24 brd 172.16.8.255 scope global br-547232eeb015
       valid_lft forever preferred_lft forever


### Active Ports
tcp   LISTEN 0      32768            0.0.0.0:9443       0.0.0.0:*          
tcp   LISTEN 0      32768            0.0.0.0:9000       0.0.0.0:*          
tcp   LISTEN 0      32768            0.0.0.0:9115       0.0.0.0:*          
tcp   LISTEN 0      32768            0.0.0.0:9090       0.0.0.0:*          
tcp   LISTEN 0      32768            0.0.0.0:9093       0.0.0.0:*          
tcp   LISTEN 0      32768            0.0.0.0:9100       0.0.0.0:*          
tcp   LISTEN 0      32768            0.0.0.0:80         0.0.0.0:*          
tcp   LISTEN 0      32768            0.0.0.0:22         0.0.0.0:*          
tcp   LISTEN 0      32768            0.0.0.0:443        0.0.0.0:*          
tcp   LISTEN 0      32768            0.0.0.0:3100       0.0.0.0:*          
tcp   LISTEN 0      32768            0.0.0.0:2222       0.0.0.0:*          
tcp   LISTEN 0      32768            0.0.0.0:3000       0.0.0.0:*          
tcp   LISTEN 0      32768      127.0.0.53%lo:53         0.0.0.0:*          
tcp   LISTEN 0      32768          127.0.0.1:54322      0.0.0.0:*          
tcp   LISTEN 0      32768            0.0.0.0:8081       0.0.0.0:*          
tcp   LISTEN 0      32768          127.0.0.1:8200       0.0.0.0:*          
tcp   LISTEN 0      32768          127.0.0.1:8443       0.0.0.0:*          
tcp   LISTEN 0      32768          127.0.0.1:4000       0.0.0.0:*          
tcp   LISTEN 0      32768          127.0.0.1:8000       0.0.0.0:*          
tcp   LISTEN 0      32768          127.0.0.1:8080       0.0.0.0:*          
tcp   LISTEN 0      32768          127.0.0.1:6543       0.0.0.0:*          
tcp   LISTEN 0      32768          127.0.0.1:6379       0.0.0.0:*          
tcp   LISTEN 0      32768          127.0.0.1:5432       0.0.0.0:*          
tcp   LISTEN 0      32768         127.0.0.54:53         0.0.0.0:*          
tcp   LISTEN 0      32768          127.0.0.1:5672       0.0.0.0:*          
tcp   LISTEN 0      32768               [::]:9443          [::]:*          
tcp   LISTEN 0      32768               [::]:9000          [::]:*          
tcp   LISTEN 0      32768               [::]:9115          [::]:*          
tcp   LISTEN 0      32768               [::]:9090          [::]:*          
tcp   LISTEN 0      32768               [::]:9093          [::]:*          
tcp   LISTEN 0      32768               [::]:9100          [::]:*          
tcp   LISTEN 0      32768               [::]:80            [::]:*          
tcp   LISTEN 0      32768               [::]:22            [::]:*          
tcp   LISTEN 0      32768               [::]:443           [::]:*          
tcp   LISTEN 0      32768               [::]:3100          [::]:*          
tcp   LISTEN 0      32768               [::]:2222          [::]:*          
tcp   LISTEN 0      32768               [::]:3000          [::]:*          
tcp   LISTEN 0      32768               [::]:8081          [::]:*          

## 🐳 Docker Containers
CONTAINER ID   IMAGE                                    COMMAND                   CREATED        STATUS                    PORTS                                                                                                    NAMES
fa4f0740f9a0   ghcr.io/requarks/wiki:2                  "docker-entrypoint.s…"    27 hours ago   Up 24 hours               3000/tcp, 3443/tcp                                                                                       wikijs
b25fd15dd2f7   ghcr.io/czlonkowski/n8n-mcp:latest       "/usr/local/bin/dock…"    34 hours ago   Up 34 hours (unhealthy)   3000/tcp                                                                                                 recursing_moser
a2f2949961ad   documenso-custom:latest                  "docker-entrypoint.s…"    35 hours ago   Up 35 hours                                                                                                                        documenso
5dbb7c6566ec   ghcr.io/czlonkowski/n8n-mcp:latest       "/usr/local/bin/dock…"    35 hours ago   Up 35 hours (unhealthy)   3000/tcp                                                                                                 naughty_elion
4d7996b6d372   ghcr.io/czlonkowski/n8n-mcp:latest       "/usr/local/bin/dock…"    43 hours ago   Up 43 hours (unhealthy)   3000/tcp                                                                                                 ecstatic_galois
f8e320311b37   ghcr.io/czlonkowski/n8n-mcp:latest       "/usr/local/bin/dock…"    44 hours ago   Up 44 hours (unhealthy)   3000/tcp                                                                                                 youthful_ishizaka
e9a99a098d9e   ghcr.io/czlonkowski/n8n-mcp:latest       "/usr/local/bin/dock…"    44 hours ago   Up 44 hours (unhealthy)   3000/tcp                                                                                                 gifted_dirac
72f307c55345   ghcr.io/czlonkowski/n8n-mcp:latest       "/usr/local/bin/dock…"    44 hours ago   Up 44 hours (unhealthy)   3000/tcp                                                                                                 distracted_carver
9fe82d9c0943   ghcr.io/czlonkowski/n8n-mcp:latest       "/usr/local/bin/dock…"    44 hours ago   Up 44 hours (unhealthy)   3000/tcp                                                                                                 competent_chaplygin
f054f5b1d2b1   ghcr.io/czlonkowski/n8n-mcp:latest       "/usr/local/bin/dock…"    45 hours ago   Up 45 hours (unhealthy)   3000/tcp                                                                                                 nostalgic_engelbart
062373e0f19d   outlinewiki/outline:latest               "docker-entrypoint.s…"    47 hours ago   Up 47 hours (healthy)     3000/tcp                                                                                                 outline
833b9dfcf965   ghcr.io/czlonkowski/n8n-mcp:latest       "/usr/local/bin/dock…"    2 days ago     Up 2 days (unhealthy)     3000/tcp                                                                                                 stoic_tesla
53f6b558f176   ghcr.io/czlonkowski/n8n-mcp:latest       "/usr/local/bin/dock…"    2 days ago     Up 2 days (unhealthy)     3000/tcp                                                                                                 eloquent_chatelet
3c0faf9a8fa9   ghcr.io/czlonkowski/n8n-mcp:latest       "/usr/local/bin/dock…"    2 days ago     Up 2 days (unhealthy)     3000/tcp                                                                                                 keen_cannon
e24e2add4f5c   ghcr.io/czlonkowski/n8n-mcp:latest       "/usr/local/bin/dock…"    2 days ago     Up 2 days (unhealthy)     3000/tcp                                                                                                 sweet_hoover
c8c84f8a3dc4   ghcr.io/czlonkowski/n8n-mcp:latest       "/usr/local/bin/dock…"    2 days ago     Up 2 days (unhealthy)     3000/tcp                                                                                                 relaxed_hopper
7ce66cc4ecc4   kong:latest                              "bash -c 'eval \"echo…"   2 days ago     Up 2 days (healthy)       127.0.0.1:8000->8000/tcp, 8001/tcp, 127.0.0.1:8443->8443/tcp, 8444/tcp                                   supabase-kong
973c21683b0c   timberio/vector:latest-alpine            "/usr/local/bin/vect…"    2 days ago     Up 2 days (healthy)                                                                                                                supabase-vector
d88b92089656   hashicorp/vault:1.21                     "docker-entrypoint.s…"    2 days ago     Up 2 days (healthy)       127.0.0.1:8200->8200/tcp                                                                                 vault
a556be2e2eee   darthsim/imgproxy:latest                 "entrypoint.sh imgpr…"    2 days ago     Up 2 days (healthy)       8080/tcp                                                                                                 supabase-imgproxy
ddab27f0ac61   postgrest/postgrest:latest               "postgrest"               2 days ago     Up 2 days                 3000/tcp                                                                                                 supabase-rest
b6c668c7a683   traefik:latest                           "/entrypoint.sh --co…"    2 days ago     Up 24 hours               0.0.0.0:80->80/tcp, [::]:80->80/tcp, 0.0.0.0:443->443/tcp, [::]:443->443/tcp, 127.0.0.1:8080->8080/tcp   traefik
14f3766d108b   ghcr.io/goauthentik/server:2025.10       "dumb-init -- ak ser…"    2 days ago     Up 24 hours (healthy)     0.0.0.0:9000->9000/tcp, [::]:9000->9000/tcp, 0.0.0.0:9443->9443/tcp, [::]:9443->9443/tcp                 authentik-server
2db797d8977d   ghcr.io/goauthentik/proxy:2025.10        "/proxy"                  2 days ago     Created                                                                                                                            authentik-proxy
93dbb65f83b1   ghcr.io/goauthentik/server:2025.10       "dumb-init -- ak wor…"    2 days ago     Up 24 hours (healthy)                                                                                                              authentik-worker
8dda5460003c   redis:alpine                             "docker-entrypoint.s…"    2 days ago     Up 24 hours (healthy)     6379/tcp                                                                                                 authentik-redis
cc9c776ce2a8   postgres:16-alpine                       "docker-entrypoint.s…"    2 days ago     Up 24 hours (healthy)     5432/tcp                                                                                                 authentik-postgres
6629ad9f06a6   prometheuscommunity/postgres-exporter    "/bin/postgres_expor…"    2 days ago     Up 2 days                 9187/tcp                                                                                                 postgres-exporter
9abceb02712c   mautic/mautic:latest                     "/entrypoint.sh apac…"    2 days ago     Up 2 days                 80/tcp                                                                                                   mautic
8be416b7c276   n8nio/n8n:latest                         "tini -- /docker-ent…"    2 days ago     Up 2 days                 5678/tcp                                                                                                 n8n-shared
11d879b84b10   n8nio/n8n:latest                         "tini -- /docker-ent…"    2 days ago     Up 2 days                 5678/tcp                                                                                                 n8n-worker-4
5875225a6b11   n8nio/n8n:latest                         "tini -- /docker-ent…"    2 days ago     Up 2 days                 5678/tcp                                                                                                 n8n-worker-2
0a786784a9e5   n8nio/n8n:latest                         "tini -- /docker-ent…"    2 days ago     Up 2 days                 5678/tcp                                                                                                 n8n-worker-1
881f96b43ef6   n8nio/n8n:latest                         "tini -- /docker-ent…"    2 days ago     Up 2 days                 5678/tcp                                                                                                 n8n-worker-3
53cb9ebc6b8b   prom/blackbox-exporter:latest            "/bin/blackbox_expor…"    2 days ago     Up 2 days                 0.0.0.0:9115->9115/tcp, [::]:9115->9115/tcp                                                              blackbox-exporter
24fdddda2a97   grafana/promtail:3.5.7                   "/usr/bin/promtail -…"    2 days ago     Up 2 days                                                                                                                          promtail
c722118c42ea   grafana/loki:3.5.7                       "/usr/bin/loki -conf…"    2 days ago     Up 2 days                 0.0.0.0:3100->3100/tcp, [::]:3100->3100/tcp                                                              loki
1d953c1a6863   gcr.io/cadvisor/cadvisor:v0.47.0         "/usr/bin/cadvisor -…"    2 days ago     Up 2 days (healthy)       0.0.0.0:8081->8080/tcp, [::]:8081->8080/tcp                                                              cadvisor
149559488e46   grafana/grafana:latest                   "/run.sh"                 3 days ago     Up 3 days                 0.0.0.0:3000->3000/tcp, [::]:3000->3000/tcp                                                              grafana
e4b0d8b78c32   prom/node-exporter:latest                "/bin/node_exporter …"    3 days ago     Up 3 days                 0.0.0.0:9100->9100/tcp, [::]:9100->9100/tcp                                                              node-exporter
be1adf4b878f   prom/prometheus:latest                   "/bin/prometheus --c…"    3 days ago     Up 2 days                 0.0.0.0:9090->9090/tcp, [::]:9090->9090/tcp                                                              prometheus
ffe203f9b8a4   prom/alertmanager:latest                 "/bin/alertmanager -…"    3 days ago     Up 3 days                 0.0.0.0:9093->9093/tcp, [::]:9093->9093/tcp                                                              alertmanager
3cd7746a3161   ghcr.io/gitroomhq/postiz-app:latest      "docker-entrypoint.s…"    3 days ago     Up 3 days                                                                                                                          postiz
c3fbf6d60fb0   postgres:16-alpine                       "docker-entrypoint.s…"    3 days ago     Up 3 days (healthy)       5432/tcp                                                                                                 postiz-postgres
7ef5f0cf597e   redis:7-alpine                           "docker-entrypoint.s…"    3 days ago     Up 3 days (healthy)       6379/tcp                                                                                                 postiz-redis
25a68f412881   odoo:17                                  "/entrypoint.sh odoo"     5 days ago     Up 5 days                 8069/tcp, 8071-8072/tcp                                                                                  odoo
5d07f5eb6fe5   supabase/gotrue:v2.180.0                 "auth"                    5 days ago     Up 5 days (healthy)                                                                                                                supabase-auth
303ae814fd50   vaultwarden/server:1.30.5-alpine         "/start.sh"               5 days ago     Up 5 days (healthy)       80/tcp, 3012/tcp                                                                                         vaultwarden
592d137be91a   louislam/uptime-kuma:latest              "/usr/bin/dumb-init …"    5 days ago     Up 5 days (healthy)       3001/tcp                                                                                                 uptime-kuma
e3b888061535   python:3.11-slim                         "bash -c 'pip instal…"    5 days ago     Up 5 days (healthy)                                                                                                                mautic-odoo-sync-v2
ec47923639ad   mariadb:11                               "docker-entrypoint.s…"    5 days ago     Up 5 days                 3306/tcp                                                                                                 mautic-db
d449ae3903ea   supabase/storage-api:v1.28.0             "docker-entrypoint.s…"    6 days ago     Up 6 days (healthy)       5000/tcp                                                                                                 supabase-storage
b8fa78be545c   supabase/realtime:v2.51.11               "/usr/bin/tini -s -g…"    6 days ago     Up 6 days (healthy)                                                                                                                realtime-dev.supabase-realtime
80d4d268ac60   supabase/supavisor:2.7.0                 "/usr/bin/tini -s -g…"    6 days ago     Up 6 days (healthy)       127.0.0.1:6543->6543/tcp, 127.0.0.1:54322->5432/tcp                                                      supabase-pooler
9ed86a2fed50   supabase/edge-runtime:v1.69.6            "edge-runtime start …"    6 days ago     Up 6 days                                                                                                                          supabase-edge-functions
6373b1dc8ab6   supabase/postgres-meta:v0.91.6           "docker-entrypoint.s…"    6 days ago     Up 6 days (healthy)       8080/tcp                                                                                                 supabase-meta
71fd989b2c96   supabase/studio:2025.10.01-sha-8460121   "docker-entrypoint.s…"    6 days ago     Up 6 days (healthy)       3000/tcp                                                                                                 supabase-studio
9c4e09d2653c   supabase/logflare:1.22.6                 "sh run.sh"               6 days ago     Up 6 days (healthy)       127.0.0.1:4000->4000/tcp                                                                                 supabase-analytics
318f30451a43   supabase/postgres:15.8.1.085             "docker-entrypoint.s…"    6 days ago     Up 6 days (healthy)       5432/tcp                                                                                                 supabase-db
c1f6563f4b5d   python:3.11-slim                         "bash -c 'pip instal…"    6 days ago     Up 6 days                                                                                                                          mautic-sync-webhook
04a59f8cf255   portainer/portainer-ce:latest            "/portainer"              6 days ago     Up 6 days                 8000/tcp, 9000/tcp, 9443/tcp                                                                             portainer
cb211205bdff   atendai/evolution-api:latest             "/bin/bash -c '. ./D…"    6 days ago     Up 6 days                 8080/tcp                                                                                                 evolution-api
a5a5a21d4fa4   rabbitmq:3.13-management-alpine          "docker-entrypoint.s…"    6 days ago     Up 6 days (healthy)       4369/tcp, 5671/tcp, 15671-15672/tcp, 15691-15692/tcp, 25672/tcp, 127.0.0.1:5672->5672/tcp                rabbitmq
5a0fd47a2184   dpage/pgadmin4:9.9                       "/entrypoint.sh"          6 days ago     Up 6 days                 80/tcp, 443/tcp                                                                                          pgadmin
c97df7338002   postgres:16-alpine                       "docker-entrypoint.s…"    6 days ago     Up 6 days (healthy)       127.0.0.1:5432->5432/tcp                                                                                 postgres-main
ff2a8e2e4e35   5e7abcdd2021                             "/docker-entrypoint.…"    2 weeks ago    Up 8 days                 80/tcp                                                                                                   landing-page
94527547ced8   atmoz/sftp:latest                        "/entrypoint aimpres…"    2 weeks ago    Up 8 days                 0.0.0.0:2222->22/tcp, [::]:2222->22/tcp                                                                  sftp-server
be0461fefae9   redis:7-alpine                           "docker-entrypoint.s…"    2 weeks ago    Up 8 days (healthy)       127.0.0.1:6379->6379/tcp                                                                                 redis-main

NETWORK ID     NAME                            DRIVER    SCOPE
d34729d1af35   aiimpress                       bridge    local
547232eeb015   authentik_authentik-internal    bridge    local
f02abd181cda   bridge                          bridge    local
cdaceadfcefb   database-internal               bridge    local
4b9a877223ee   host                            host      local
a0dd7c187961   mautic-internal                 bridge    local
f2be33f79fe4   mautic_mautic-internal          bridge    local
05057d2fe236   monitoring_monitoring           bridge    local
01cd476e5307   n8n-shared                      bridge    local
d21678395b05   none                            null      local
39a0028fdb88   odoo-internal                   bridge    local
e581070d94e4   postiz-config_postiz-internal   bridge    local
9e103eeb0591   postiz_postiz-internal          bridge    local
c797531af13d   sftp_default                    bridge    local
36cf0e468fc7   supabase_default                bridge    local
b28f70541993   traefik-public                  bridge    local
4bc92c6c74a8   vault-internal                  bridge    local

DRIVER    VOLUME NAME
local     1d05e9c3b1c13eb3f4e941f5f3bdc42c0984dc7b254b80421aef3253a853a0f7
local     07d3f4b5361d23053c1494f59e6b86a7764ade86b19b2bb9a4624575d75840b9
local     32c8ad3aa58fad4784d1e376addb444864a5093ed9887dbb93a1e2ee2a5dbe9e
local     39f75a4a27e5200259a67482b6ced1b30ec631171fff019600280e08c9bc3571
local     134e1cceb87bf846f832690a6063f1ae92af79b14e56cc9cf3a52c4cf4df3d43
local     212f82b4e8f83fc0360dd7cf677482e190229ee51eb9a69785fec7d39453bff9
local     298bf7f6bec3e84f231058d1023f483172bb016fe6191b8e88785c579a89e176
local     777f8481a63beaa6aa44594803514a2bf4fdd5db35a834b4057a7184933e680f
local     2132497e7c4a93d26aa78464b959c269d5e8555127cb5f2e62ea2cd605574ebb
local     31807040665eacb2b72e4fc33710821214d0960a84897065adc2d4c86f6d44ae
local     a5e176aab007d7c624544d1199d634bf0f363f075aa4845f24113195a7735b47
local     authentik_authentik-postgres-data
local     authentik_authentik-redis-data
local     b652c8a3e583d8ceaaa6317020fe58339739cec97a3b9610dd60882ab1e5d028
local     b9424423b85c8bb5bf7b58332b40139429f3cf2b2ca3614ea0453cd9e57b924f
local     cf1cac6c1daef086c8a013d56c373532c171e8536c3846da7b5572f4c50de37a
local     d35512c8aacfab7d5b1810489c9c2167980ee7912d4e2d990858f2dc9d71f6d2
local     documenso_data
local     ead2af7e8f51f6a556b541d217778471b7e2e9b1777bdc676942e4d4eda8a19e
local     evolution-api_evolution-data
local     evolution-data
local     loki_loki-data
local     mautic_mautic-data
local     mautic_mautic-db-data
local     monitoring_prometheus_data
local     n8n-data
local     n8n-shared_n8n-data
local     odoo-addons
local     odoo-data
local     odoo_odoo-addons
local     odoo_odoo-data
local     openwebui_openwebui-data
local     outline-data
local     outline_outline-data
local     pgadmin-data
local     portainer-data
local     portainer_portainer-data
local     postgres_pgadmin-data
local     postiz-config
local     postiz-postgres-data
local     postiz-redis-data
local     postiz-uploads
local     postiz_postiz-config
local     postiz_postiz-postgres
local     postiz_postiz-postgres-data
local     postiz_postiz-redis
local     postiz_postiz-redis-data
local     postiz_postiz-uploads
local     rabbitmq-data
local     rabbitmq_rabbitmq-data
local     redis-data
local     redis_redis-data
local     supabase_db-config
local     uptime-kuma
local     uptime-kuma-data
local     uptime-kuma_uptime-kuma-data
local     vaultwarden-data
local     vaultwarden_vaultwarden-data
local     wikijs_data

## ⚙️ Docker Compose Files

### ${f}
```yaml
version: '3.8'

services:
  postiz:
    image: ghcr.io/gitroomhq/postiz-app:latest
    container_name: postiz
    restart: unless-stopped
    env_file: .env
    depends_on:
      postiz-postgres:
        condition: service_healthy
      postiz-redis:
        condition: service_healthy
    networks:
      - traefik-public
      - postiz-internal
    volumes:
      - postiz-uploads:/uploads
    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=traefik-public"
      
      # Main frontend: social.ai-impress.com (with Authelia)
      - "traefik.http.routers.postiz.rule=Host(`social.ai-impress.com`)"
      - "traefik.http.routers.postiz.entrypoints=websecure"
      - "traefik.http.routers.postiz.tls.certresolver=cloudflare"
      - "traefik.http.routers.postiz.middlewares=authentik@file"
      
      # Uploads subdomain: uploads.ai-impress.com (without Authelia, for social media bots)
      - "traefik.http.routers.postiz-uploads.rule=Host(`uploads.ai-impress.com`)"
      - "traefik.http.routers.postiz-uploads.entrypoints=websecure"
      - "traefik.http.routers.postiz-uploads.tls.certresolver=cloudflare"
      
      # Service port
      - "traefik.http.services.postiz.loadbalancer.server.port=5000"

  postiz-postgres:
    image: postgres:16-alpine
    container_name: postiz-postgres
    restart: unless-stopped
    environment:
      POSTGRES_DB: postiz
      POSTGRES_USER: postiz
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
    networks:
      - postiz-internal
    volumes:
      - postiz-postgres-data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U postiz -d postiz"]
      interval: 10s
      timeout: 5s
      retries: 5

  postiz-redis:
    image: redis:7-alpine
    container_name: postiz-redis
    restart: unless-stopped
    networks:
      - postiz-internal
    volumes:
      - postiz-redis-data:/data
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 10s
      timeout: 5s
      retries: 5

volumes:
  postiz-uploads:
    external: true
    name: postiz_postiz-uploads
  postiz-postgres-data:
    external: true
    name: postiz_postiz-postgres-data
  postiz-redis-data:
    external: true
    name: postiz_postiz-redis-data

networks:
  traefik-public:
    external: true
  postiz-internal:
    driver: bridge
```

### ${f}
```yaml
version: '3.8'

services:
  redis:
    image: redis:7-alpine
    container_name: redis-main
    restart: unless-stopped
    env_file:
      - .env
    command: >
      redis-server
      --requirepass ${REDIS_PASSWORD}
      --maxmemory 4gb
      --maxmemory-policy allkeys-lru
      --appendonly yes
      --appendfsync everysec
      --save 900 1
      --save 300 10
      --save 60 10000
    networks:
      - database-internal
    volumes:
      - redis-data:/data
    ports:
      - "127.0.0.1:6379:6379"
    healthcheck:
      test: ["CMD", "redis-cli", "--raw", "incr", "ping"]
      interval: 10s
      timeout: 3s
      retries: 5

volumes:
  redis-data:

networks:
  database-internal:
    external: true
```

### ${f}
```yaml
services:
  traefik:
    image: traefik:latest
    container_name: traefik
    restart: unless-stopped
    security_opt:
      - no-new-privileges:true
    networks:
      - traefik-public
    ports:
      - "80:80"
      - "443:443"
      - "127.0.0.1:8080:8080"
    env_file:
      - .env
    command:
      - --configFile=/traefik.yml
      - --serverstransport.maxResponseHeaderBytes=524288
    environment:
      - GOGC=40
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./config/traefik.yml:/traefik.yml:ro
      - ./config/dynamic.yml:/dynamic.yml:ro
      - ./acme:/acme
      - ./logs:/logs
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.traefik-dashboard.rule=Host(`traefik.ai-impress.com`)"
      - "traefik.http.routers.traefik-dashboard.entrypoints=websecure"
      - "traefik.http.routers.traefik-dashboard.tls.certresolver=cloudflare"
      - "traefik.http.routers.traefik-dashboard.service=api@internal"
      - "traefik.http.routers.traefik-dashboard.middlewares=authentik@file"
      - "traefik.http.services.traefik-dashboard.loadbalancer.server.port=8080"

networks:
  traefik-public:
    external: true
```

### ${f}
```yaml
version: '3.8'
services:
  rabbitmq:
    image: rabbitmq:3.13-management-alpine
    container_name: rabbitmq
    restart: unless-stopped
    hostname: rabbitmq-aimpress
    networks:
    - database-internal
    - traefik-public
    env_file:
    - .env
    environment:
      RABBITMQ_DEFAULT_USER: ${RABBITMQ_USER}
      RABBITMQ_DEFAULT_PASS: ${RABBITMQ_PASSWORD}
      RABBITMQ_DEFAULT_VHOST: /
    volumes:
    - rabbitmq-data:/var/lib/rabbitmq
    - ./rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf:ro
    ports:
    - 127.0.0.1:5672:5672
    labels:
    - traefik.enable=true
    - traefik.http.routers.rabbitmq.rule=Host(`rabbitmq.ai-impress.com`)
    - traefik.http.routers.rabbitmq.entrypoints=websecure
    - traefik.http.routers.rabbitmq.tls.certresolver=cloudflare
    - traefik.http.services.rabbitmq.loadbalancer.server.port=15672
    - traefik.http.routers.rabbitmq.middlewares=authentik@file
    healthcheck:
      test: rabbitmq-diagnostics -q ping
      interval: 30s
      timeout: 10s
      retries: 5
volumes:
  rabbitmq-data: null
networks:
  database-internal:
    external: true
  traefik-public:
    external: true
```

### ${f}
```yaml
version: '3.8'
services:
  postgres:
    image: postgres:16-alpine
    container_name: postgres-main
    restart: unless-stopped
    networks:
    - database-internal
    env_file:
    - .env
    environment:
      POSTGRES_USER: ${POSTGRES_ADMIN_USER}
      POSTGRES_PASSWORD: ${POSTGRES_ADMIN_PASSWORD}
      POSTGRES_DB: postgres
      PGDATA: /var/lib/postgresql/data/pgdata
    volumes:
    - /mnt/psql-data:/var/lib/postgresql/data
    - ./init-scripts:/docker-entrypoint-initdb.d:ro
    - ./backups:/backups
    ports:
    - 127.0.0.1:5432:5432
    command:
    - postgres
    - -c
    - max_connections=200
    - -c
    - shared_buffers=2GB
    - -c
    - effective_cache_size=6GB
    healthcheck:
      test:
      - CMD-SHELL
      - pg_isready -U ${POSTGRES_ADMIN_USER} -d postgres
      interval: 10s
      timeout: 5s
      retries: 5
  pgadmin:
    image: dpage/pgadmin4:9.9
    container_name: pgadmin
    restart: unless-stopped
    networks:
    - database-internal
    - traefik-public
    env_file:
    - .env
    environment:
      PGADMIN_DEFAULT_EMAIL: ${PGADMIN_EMAIL}
      PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_PASSWORD}
      PGADMIN_CONFIG_SERVER_MODE: 'True'
      PGADMIN_CONFIG_MASTER_PASSWORD_REQUIRED: 'False'
      PGADMIN_SERVER_JSON_FILE: /pgadmin4/servers.json
      PGADMIN_CONFIG_AUTHENTICATION_SOURCES: '[''webserver'']'
      PGADMIN_CONFIG_WEBSERVER_REMOTE_USER: '''X-authentik-username'''
      PGADMIN_CONFIG_WEBSERVER_AUTO_CREATE_USER: 'True'
    volumes:
    - pgadmin-data:/var/lib/pgadmin
    - ./pgadmin-config/servers.json:/pgadmin4/servers.json:ro
    labels:
    - traefik.enable=true
    - traefik.http.routers.pgadmin.rule=Host(`pgadmin.ai-impress.com`)
    - traefik.http.routers.pgadmin.entrypoints=websecure
    - traefik.http.routers.pgadmin.tls.certresolver=cloudflare
    - traefik.http.services.pgadmin.loadbalancer.server.port=80
    - traefik.http.routers.pgadmin.middlewares=authentik@file
    depends_on:
      postgres:
        condition: service_healthy
volumes:
  pgadmin-data: null
networks:
  database-internal:
    external: true
  traefik-public:
    external: true
```

### ${f}
```yaml
version: '3.8'

services:
  loki:
    image: grafana/loki:3.5.7
    container_name: loki
    restart: unless-stopped
    ports:
      - "3100:3100"
    command: -config.file=/etc/loki/local-config.yaml
    volumes:
      - loki-data:/loki
      - ./loki-config.yaml:/etc/loki/local-config.yaml
    networks:
      - monitoring_monitoring

  promtail:
    image: grafana/promtail:3.5.7
    container_name: promtail
    restart: unless-stopped
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /var/lib/docker/containers:/var/lib/docker/containers:ro
      - /opt:/opt:ro
      - ./promtail-config.yaml:/etc/promtail/config.yaml
    command: -config.file=/etc/promtail/config.yaml
    networks:
      - monitoring_monitoring

volumes:
  loki-data:

networks:
  monitoring_monitoring:
    external: true
```

### ${f}
```yaml
version: '3.8'

services:
  blackbox-exporter:
    image: prom/blackbox-exporter:latest
    container_name: blackbox-exporter
    restart: unless-stopped
    ports:
      - "9115:9115"
    volumes:
      - ./blackbox.yml:/etc/blackbox_exporter/config.yml
    command:
      - '--config.file=/etc/blackbox_exporter/config.yml'
    networks:
      - monitoring_monitoring

networks:
  monitoring_monitoring:
    external: true
```

### ${f}
```yaml
version: '3.8'

services:
  vault:
    image: hashicorp/vault:1.21
    container_name: vault
    restart: unless-stopped
    cap_add:
      - IPC_LOCK
    networks:
      - vault-internal
      - traefik-public
    ports:
      - "127.0.0.1:8200:8200"
    environment:
      VAULT_ADDR: 'http://127.0.0.1:8200'
      VAULT_API_ADDR: 'https://vault-admin.ai-impress.com'
      VAULT_UI: 'true'
    volumes:
      - ./config:/vault/config:ro
      - ./data:/vault/data
      - ./logs:/vault/logs
    command: server
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.vault.rule=Host(`vault-admin.ai-impress.com`)"
      - "traefik.http.routers.vault.entrypoints=websecure"
      - "traefik.http.routers.vault.tls.certresolver=cloudflare"
      - "traefik.http.services.vault.loadbalancer.server.port=8200"
    healthcheck:
      test: ["CMD", "vault", "status"]
      interval: 30s
      timeout: 5s
      retries: 3
      start_period: 30s

volumes:
  vault-data:

networks:
  vault-internal:
    external: true
  traefik-public:
    external: true
```

### ${f}
```yaml
version: '3.8'

services:
  documenso:
    build:
      context: .
      dockerfile: Dockerfile.custom
    image: documenso-custom:latest
    container_name: documenso
    restart: unless-stopped
    networks:
      - traefik-public
      - database-internal
    environment:
      - DATABASE_URL=postgresql://documenso_user:${DB_PASSWORD}@postgres-main:5432/documenso
      - NEXTAUTH_SECRET=${NEXTAUTH_SECRET}
      - NEXTAUTH_URL=https://sign.ai-impress.com
      - NEXT_PUBLIC_WEBAPP_URL=https://sign.ai-impress.com
      - NEXT_PRIVATE_SMTP_TRANSPORT=${NEXT_PRIVATE_SMTP_TRANSPORT}
      - NEXT_PRIVATE_SMTP_HOST=${NEXT_PRIVATE_SMTP_HOST}
      - NEXT_PRIVATE_SMTP_PORT=${NEXT_PRIVATE_SMTP_PORT}
      - NEXT_PRIVATE_SMTP_USERNAME=${NEXT_PRIVATE_SMTP_USERNAME}
      - NEXT_PRIVATE_SMTP_PASSWORD=${NEXT_PRIVATE_SMTP_PASSWORD}
      - NEXT_PRIVATE_SMTP_FROM_NAME=${NEXT_PRIVATE_SMTP_FROM_NAME}
      - NEXT_PRIVATE_SMTP_FROM_ADDRESS=${NEXT_PRIVATE_SMTP_FROM_ADDRESS}
      - NEXT_PRIVATE_SMTP_SECURE=${NEXT_PRIVATE_SMTP_SECURE}
      - NEXT_PRIVATE_SMTP_DEBUG=${NEXT_PRIVATE_SMTP_DEBUG}
      - DEBUG=${DEBUG}
      - NEXT_PUBLIC_DISABLE_SIGNUP=${NEXT_PUBLIC_DISABLE_SIGNUP}
      - NEXT_PUBLIC_MARKETING_URL=https://sign.ai-impress.com
      - NEXT_PUBLIC_APP_URL=https://sign.ai-impress.com
      - NEXT_PRIVATE_DISABLE_EMAIL_AUTH=true
      # Prisma variables
      - NEXT_PRIVATE_DATABASE_URL=postgresql://documenso_user:${DB_PASSWORD}@postgres-main:5432/documenso
      - NEXT_PRIVATE_DIRECT_DATABASE_URL=postgresql://documenso_user:${DB_PASSWORD}@postgres-main:5432/documenso
      # OIDC для сотрудников
      - NEXT_PRIVATE_OIDC_CLIENT_ID=nUi11HfuTLoROKqI4leUSzi48BB7m4KkqjwYq1wG
      - NEXT_PRIVATE_OIDC_CLIENT_SECRET=vFsXdQ1QYNhoOJpMz9OR6aoCsKTzNc473aL2Vn2J2fcMFnH5xnZFAKJdEMNB3vdQmZM8y9ESUUTwz6owAfuFWeBFQy2U7BQRW1W1fDmZr1oXAkUeZuD49jEdCJN7Bvy3
      - NEXT_PRIVATE_OIDC_WELL_KNOWN=https://auth.ai-impress.com/application/o/documenso/.well-known/openid-configuration
      - NEXT_PRIVATE_OIDC_PROVIDER_LABEL=Authentik SSO
      # Encryption keys (REQUIRED)
      - NEXT_PRIVATE_ENCRYPTION_KEY=${NEXT_PRIVATE_ENCRYPTION_KEY}
      - NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY=${NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY}
      # Storage configuration
      - NEXT_PUBLIC_UPLOAD_TRANSPORT=database
      # Production settings
      - NODE_ENV=production
      # Document signing configuration
      - NEXT_PRIVATE_SIGNING_TRANSPORT=${NEXT_PRIVATE_SIGNING_TRANSPORT}
      - NEXT_PRIVATE_SIGNING_LOCAL_FILE_PATH=${NEXT_PRIVATE_SIGNING_LOCAL_FILE_PATH}
      - NEXT_PRIVATE_SIGNING_LOCAL_FILE_PASSPHRASE=${NEXT_PRIVATE_SIGNING_LOCAL_FILE_PASSPHRASE}
      - NEXT_PRIVATE_SIGNING_PASSPHRASE=${NEXT_PRIVATE_SIGNING_PASSPHRASE}
      # Playwright configuration
      - PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
      - PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH=/usr/bin/chromium-browser
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.documenso.rule=Host(`sign.ai-impress.com`)"
      - "traefik.http.routers.documenso.tls=true"
      - "traefik.http.services.documenso.loadbalancer.server.port=3000"
      # Authentik middleware отключен - клиенты регистрируются напрямую
    volumes:
      - ./data:/data

networks:
  traefik-public:
    external: true
  database-internal:
    external: true
```

### ${f}
```yaml
version: '3.8'
services:
  mautic-db:
    image: mariadb:11
    container_name: mautic-db
    restart: unless-stopped
    networks:
    - mautic-internal
    environment:
    - MYSQL_ROOT_PASSWORD=mautic_root_pass_2025
    - MYSQL_DATABASE=mautic
    - MYSQL_USER=mautic_user
    - MYSQL_PASSWORD=mautic_pass_secure_2025
    volumes:
    - mautic-db-data:/var/lib/mysql
    command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
  mautic:
    image: mautic/mautic:latest
    container_name: mautic
    restart: unless-stopped
    networks:
    - traefik-public
    - mautic-internal
    depends_on:
    - mautic-db
    environment:
    - MAUTIC_DB_HOST=mautic-db
    - MAUTIC_DB_PORT=3306
    - MAUTIC_DB_USER=mautic_user
    - MAUTIC_DB_PASSWORD=mautic_pass_secure_2025
    - MAUTIC_DB_DATABASE=mautic
    - MAUTIC_RUN_CRON_JOBS=true
    - MAUTIC_URL=https://marketing.ai-impress.com
    - DEBUG=false
    - MAUTIC_MAILER_HOST=aiimpress-com0e.mail.protection.outlook.com
    - MAUTIC_MAILER_PORT=25
    - MAUTIC_MAILER_FROM_EMAIL=noreply@ai-impress.com
    - MAUTIC_MAILER_TRANSPORT=smtp
    - MAUTIC_SAML_ENABLED=true
    - MAUTIC_SAML_ENTITY_ID=marketing.ai-impress.com
    - MAUTIC_SAML_LOGIN_PATH=/s/saml/login
    - MAUTIC_SAML_LOGIN_CHECK_PATH=/s/saml/login_check
    volumes:
    - mautic-data:/var/www/html
    labels:
    - traefik.enable=true
    - traefik.docker.network=traefik-public
    
    # Main router with auth (for UI)
    - traefik.http.routers.mautic.rule=Host(`marketing.ai-impress.com`)
    - traefik.http.routers.mautic.entrypoints=websecure
    - traefik.http.routers.mautic.tls.certresolver=cloudflare
    - traefik.http.routers.mautic.priority=1
    - traefik.http.routers.mautic.middlewares=mautic-auth
    
    # API router without auth (for OAuth2 and API endpoints)
    - traefik.http.routers.mautic-api.rule=Host(`marketing.ai-impress.com`) && (PathPrefix(`/oauth`) || PathPrefix(`/api`))
    - traefik.http.routers.mautic-api.entrypoints=websecure
    - traefik.http.routers.mautic-api.tls.certresolver=cloudflare
    - traefik.http.routers.mautic-api.priority=10
    
    # Middleware for auth
    - traefik.http.middlewares.mautic-auth.forwardauth.address=http://authentik-proxy:9000/outpost.goauthentik.io/auth/traefik
    - traefik.http.middlewares.mautic-auth.forwardauth.trustForwardHeader=true
    - traefik.http.middlewares.mautic-auth.forwardauth.authResponseHeaders=X-authentik-username,X-authentik-groups,X-authentik-email,X-authentik-name,X-authentik-uid
    
    # Service
    - traefik.http.services.mautic.loadbalancer.server.port=80

volumes:
  mautic-db-data: null
  mautic-data: null
networks:
  traefik-public:
    external: true
  mautic-internal:
    driver: bridge
```

### ${f}
```yaml
version: '3.8'

services:
  outline:
    image: outlinewiki/outline:latest
    container_name: outline
    restart: unless-stopped
    networks:
      - traefik-public
      - database-internal
    env_file:
      - .env
    volumes:
      - outline-data:/var/lib/outline/data
    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=traefik-public"
      - "traefik.http.routers.outline.rule=Host(`wiki.ai-impress.com`)"
      - "traefik.http.routers.outline.entrypoints=websecure"
      - "traefik.http.routers.outline.tls.certresolver=cloudflare"
      - "traefik.http.services.outline.loadbalancer.server.port=3000"

volumes:
  outline-data:

networks:
  traefik-public:
    external: true
  database-internal:
    external: true
```

### ${f}
```yaml
version: "3.8"

services:
  wiki:
    image: ghcr.io/requarks/wiki:2
    container_name: wikijs
    restart: unless-stopped
    environment:
      # --- Подключение к вашей существующей БД ---
      DB_TYPE: postgres
      DB_HOST: postgres-main
      DB_PORT: 5432
      DB_USER: wikijs_user
      DB_NAME: wikijs
      DB_PASS: 'sT9pLqV2!kG4wJ7aC1rE' # Пароль, который мы сохранили в Vault
    networks:
      - traefik-public     # Сеть для доступа извне (через Traefik)
      - database-internal  # Сеть для доступа к БД
    volumes:
      - wiki-data:/wiki/data # Создаем том для данных Wiki.js (config.yml, файлы и т.д.)
    labels:
      # --- Конфигурация Traefik ---
      - "traefik.enable=true"
      - "traefik.http.routers.wikijs.rule=Host(`info.ai-impress.com`)"
      - "traefik.http.routers.wikijs.entrypoints=websecure"
      - "traefik.http.routers.wikijs.tls.certresolver=letsencrypt" # (Используем ваш стандартный резолвер)
      - "traefik.http.services.wikijs.loadbalancer.server.port=3000" # (Внутренний порт Wiki.js)

volumes:
  wiki-data:
    name: wikijs_data # Даем тому понятное имя в системе

networks:
  # --- Указываем, что эти сети уже существуют ---
  traefik-public:
    external: true
  database-internal:
    external: true
```

### ${f}
```yaml
version: '3.8'
services:
  odoo:
    image: odoo:17
    container_name: odoo
    restart: unless-stopped
    networks:
    - traefik-public
    - database-internal
    environment:
    - HOST=postgres-main
    - PORT=5432
    - USER=odoo_user
    - PASSWORD=aeK3HvEL8E7pkic898XII4vCCyioM8yu
    volumes:
    - odoo-data:/var/lib/odoo
    - odoo-addons:/mnt/extra-addons
    - /opt/03-business/odoo/odoo.conf:/etc/odoo/odoo.conf:ro
    labels:
    - traefik.enable=true
    - traefik.docker.network=traefik-public
    - traefik.http.routers.odoo-api.rule=Host(`odoo.ai-impress.com`) && (PathPrefix(`/xmlrpc`)
      || PathPrefix(`/jsonrpc`) || PathPrefix(`/web/session`) || PathPrefix(`/web/database`)
      || PathPrefix(`/web/webclient`)|| Path(`/web/login`) || PathPrefix(`/auth_oauth`))
    - traefik.http.routers.odoo-api.entrypoints=websecure
    - traefik.http.routers.odoo-api.tls.certresolver=cloudflare
    - traefik.http.routers.odoo-api.priority=100
    - traefik.http.routers.odoo.rule=Host(`odoo.ai-impress.com`)
    - traefik.http.routers.odoo.entrypoints=websecure
    - traefik.http.routers.odoo.tls.certresolver=cloudflare
    - traefik.http.routers.odoo.priority=1
    - traefik.http.services.odoo.loadbalancer.server.port=8069
volumes:
  odoo-data: null
  odoo-addons: null
networks:
  traefik-public:
    external: true
  database-internal:
    external: true
```

### ${f}
```yaml
version: '3.8'

services:
  n8n:
    image: n8nio/n8n:latest
    container_name: n8n-shared
    restart: unless-stopped
    networks:
      - traefik-public
      - database-internal
      - n8n-shared
    env_file:
      - .env
    environment:
      # General
      N8N_HOST: n8n.ai-impress.com
      N8N_PORT: 5678
      N8N_PROTOCOL: https
      WEBHOOK_URL: https://n8n.ai-impress.com/
      
      # Database
      DB_TYPE: postgresdb
      DB_POSTGRESDB_HOST: postgres-main
      DB_POSTGRESDB_PORT: 5432
      DB_POSTGRESDB_DATABASE: n8n_shared
      DB_POSTGRESDB_USER: n8n_user
      DB_POSTGRESDB_PASSWORD: ${DB_PASSWORD}
      DB_POSTGRESDB_POOL_SIZE: 10
      
      # Queue Mode (Redis)
      QUEUE_BULL_REDIS_HOST: redis-main
      QUEUE_BULL_REDIS_PORT: 6379
      QUEUE_BULL_REDIS_PASSWORD: ${REDIS_PASSWORD}
      QUEUE_BULL_REDIS_DB: 2
      EXECUTIONS_MODE: queue
      
      # Workers configuration
      QUEUE_HEALTH_CHECK_ACTIVE: 'true'
      
      # Security
      N8N_BASIC_AUTH_ACTIVE: 'false'
      N8N_ENCRYPTION_KEY: ${N8N_ENCRYPTION_KEY}
      N8N_PAYLOAD_SIZE_MAX: 64
      
      # Performance
      EXECUTIONS_DATA_PRUNE: 'true'
      EXECUTIONS_DATA_MAX_AGE: 168
      N8N_CONCURRENCY_PRODUCTION_LIMIT: 5
      
      # Timezone
      GENERIC_TIMEZONE: Europe/London
      TZ: Europe/London
      
    volumes:
      - n8n-data:/home/node/.n8n
      - ./custom-nodes:/home/node/.n8n/custom
    deploy:
      resources:
        limits:
          cpus: '4'
          memory: 2G
        reservations:
          cpus: '1'
          memory: 512M
    labels:
      - "traefik.enable=true"
      
      # Webhook роутер БЕЗ Authelia
      - "traefik.http.routers.n8n-webhook.rule=Host(`n8n.ai-impress.com`) && (PathPrefix(`/webhook/`) || PathPrefix(`/webhook-test/`))"
      - "traefik.http.routers.n8n-webhook.entrypoints=websecure"
      - "traefik.http.routers.n8n-webhook.tls.certresolver=cloudflare"
      - "traefik.http.routers.n8n-webhook.service=n8n-shared-service"
      - "traefik.http.routers.n8n-webhook.priority=200"
      
      # OAuth роутер БЕЗ Authelia
      - "traefik.http.routers.n8n-oauth.rule=Host(`n8n.ai-impress.com`) && PathPrefix(`/rest/oauth`)"
      - "traefik.http.routers.n8n-oauth.entrypoints=websecure"
      - "traefik.http.routers.n8n-oauth.tls.certresolver=cloudflare"
      - "traefik.http.routers.n8n-oauth.service=n8n-shared-service"
      - "traefik.http.routers.n8n-oauth.priority=150"
      
      # Основной роутер БЕЗ Authelia
      - "traefik.http.routers.n8n-shared.rule=Host(`n8n.ai-impress.com`)"
      - "traefik.http.routers.n8n-shared.entrypoints=websecure"
      - "traefik.http.routers.n8n-shared.tls.certresolver=cloudflare"
      - "traefik.http.routers.n8n-shared.service=n8n-shared-service"
      - "traefik.http.routers.n8n-shared.priority=50"
      
      # Сервис
      - "traefik.http.services.n8n-shared-service.loadbalancer.server.port=5678"

  # Worker 1 - High concurrency для быстрых задач
  n8n-worker-1:
    image: n8nio/n8n:latest
    container_name: n8n-worker-1
    restart: unless-stopped
    command: worker
    networks:
      - database-internal
      - n8n-shared
    env_file:
      - .env
    environment:
      # Database
      DB_TYPE: postgresdb
      DB_POSTGRESDB_HOST: postgres-main
      DB_POSTGRESDB_PORT: 5432
      DB_POSTGRESDB_DATABASE: n8n_shared
      DB_POSTGRESDB_USER: n8n_user
      DB_POSTGRESDB_PASSWORD: ${DB_PASSWORD}
      DB_POSTGRESDB_POOL_SIZE: 5
      
      # Queue Mode (Redis)
      QUEUE_BULL_REDIS_HOST: redis-main
      QUEUE_BULL_REDIS_PORT: 6379
      QUEUE_BULL_REDIS_PASSWORD: ${REDIS_PASSWORD}
      QUEUE_BULL_REDIS_DB: 2
      EXECUTIONS_MODE: queue
      
      # Worker settings
      N8N_CONCURRENCY_PRODUCTION_LIMIT: 20
      
      # Security
      N8N_ENCRYPTION_KEY: ${N8N_ENCRYPTION_KEY}
      
      # Timezone
      GENERIC_TIMEZONE: Europe/London
      TZ: Europe/London
      
    volumes:
      - n8n-data:/home/node/.n8n
      - ./custom-nodes:/home/node/.n8n/custom
    deploy:
      resources:
        limits:
          cpus: '4'
          memory: 4G
        reservations:
          cpus: '2'
          memory: 1G

  # Worker 2 - High concurrency
  n8n-worker-2:
    image: n8nio/n8n:latest
    container_name: n8n-worker-2
    restart: unless-stopped
    command: worker
    networks:
      - database-internal
      - n8n-shared
    env_file:
      - .env
    environment:
      # Database
      DB_TYPE: postgresdb
      DB_POSTGRESDB_HOST: postgres-main
      DB_POSTGRESDB_PORT: 5432
      DB_POSTGRESDB_DATABASE: n8n_shared
      DB_POSTGRESDB_USER: n8n_user
      DB_POSTGRESDB_PASSWORD: ${DB_PASSWORD}
      DB_POSTGRESDB_POOL_SIZE: 5
      
      # Queue Mode (Redis)
      QUEUE_BULL_REDIS_HOST: redis-main
      QUEUE_BULL_REDIS_PORT: 6379
      QUEUE_BULL_REDIS_PASSWORD: ${REDIS_PASSWORD}
      QUEUE_BULL_REDIS_DB: 2
      EXECUTIONS_MODE: queue
      
      # Worker settings
      N8N_CONCURRENCY_PRODUCTION_LIMIT: 20
      
      # Security
      N8N_ENCRYPTION_KEY: ${N8N_ENCRYPTION_KEY}
      
      # Timezone
      GENERIC_TIMEZONE: Europe/London
      TZ: Europe/London
      
    volumes:
      - n8n-data:/home/node/.n8n
      - ./custom-nodes:/home/node/.n8n/custom
    deploy:
      resources:
        limits:
          cpus: '4'
          memory: 4G
        reservations:
          cpus: '2'
          memory: 1G

  # Worker 3 - Medium concurrency для сложных задач
  n8n-worker-3:
    image: n8nio/n8n:latest
    container_name: n8n-worker-3
    restart: unless-stopped
    command: worker
    networks:
      - database-internal
      - n8n-shared
    env_file:
      - .env
    environment:
      # Database
      DB_TYPE: postgresdb
      DB_POSTGRESDB_HOST: postgres-main
      DB_POSTGRESDB_PORT: 5432
      DB_POSTGRESDB_DATABASE: n8n_shared
      DB_POSTGRESDB_USER: n8n_user
      DB_POSTGRESDB_PASSWORD: ${DB_PASSWORD}
      DB_POSTGRESDB_POOL_SIZE: 5
      
      # Queue Mode (Redis)
      QUEUE_BULL_REDIS_HOST: redis-main
      QUEUE_BULL_REDIS_PORT: 6379
      QUEUE_BULL_REDIS_PASSWORD: ${REDIS_PASSWORD}
      QUEUE_BULL_REDIS_DB: 2
      EXECUTIONS_MODE: queue
      
      # Worker settings
      N8N_CONCURRENCY_PRODUCTION_LIMIT: 15
      
      # Security
      N8N_ENCRYPTION_KEY: ${N8N_ENCRYPTION_KEY}
      
      # Timezone
      GENERIC_TIMEZONE: Europe/London
      TZ: Europe/London
      
    volumes:
      - n8n-data:/home/node/.n8n
      - ./custom-nodes:/home/node/.n8n/custom
    deploy:
      resources:
        limits:
          cpus: '3'
          memory: 3G
        reservations:
          cpus: '1'
          memory: 1G

  # Worker 4 - Medium concurrency
  n8n-worker-4:
    image: n8nio/n8n:latest
    container_name: n8n-worker-4
    restart: unless-stopped
    command: worker
    networks:
      - database-internal
      - n8n-shared
    env_file:
      - .env
    environment:
      # Database
      DB_TYPE: postgresdb
      DB_POSTGRESDB_HOST: postgres-main
      DB_POSTGRESDB_PORT: 5432
      DB_POSTGRESDB_DATABASE: n8n_shared
      DB_POSTGRESDB_USER: n8n_user
      DB_POSTGRESDB_PASSWORD: ${DB_PASSWORD}
      DB_POSTGRESDB_POOL_SIZE: 5
      
      # Queue Mode (Redis)
      QUEUE_BULL_REDIS_HOST: redis-main
      QUEUE_BULL_REDIS_PORT: 6379
      QUEUE_BULL_REDIS_PASSWORD: ${REDIS_PASSWORD}
      QUEUE_BULL_REDIS_DB: 2
      EXECUTIONS_MODE: queue
      
      # Worker settings
      N8N_CONCURRENCY_PRODUCTION_LIMIT: 15
      
      # Security
      N8N_ENCRYPTION_KEY: ${N8N_ENCRYPTION_KEY}
      
      # Timezone
      GENERIC_TIMEZONE: Europe/London
      TZ: Europe/London
      
    volumes:
      - n8n-data:/home/node/.n8n
      - ./custom-nodes:/home/node/.n8n/custom
    deploy:
      resources:
        limits:
          cpus: '3'
          memory: 3G
        reservations:
          cpus: '1'
          memory: 1G

volumes:
  n8n-data:

networks:
  traefik-public:
    external: true
  database-internal:
    external: true
  n8n-shared:
    external: true
```

### ${f}
```yaml
version: '3.8'

services:
  evolution-api:
    image: atendai/evolution-api:latest
    container_name: evolution-api
    restart: unless-stopped
    networks:
      - traefik-public
      - database-internal
    env_file:
      - .env
    environment:
      DATABASE_PROVIDER: postgresql
      DATABASE_CONNECTION_URI: postgresql://evolution_user:${DB_PASSWORD}@postgres-main:5432/evolution
      AUTHENTICATION_API_KEY: ${API_KEY}
      SERVER_URL: https://wpp.ai-impress.com
    volumes:
      - evolution-data:/evolution/instances
    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=traefik-public"
      # API router without Authelia (higher priority)
      - "traefik.http.routers.evolution-api.rule=Host(`wpp.ai-impress.com`) && (PathPrefix(`/instance`) || PathPrefix(`/message`) || PathPrefix(`/chat`) || PathPrefix(`/webhook`) || PathPrefix(`/settings`))"
      - "traefik.http.routers.evolution-api.entrypoints=websecure"
      - "traefik.http.routers.evolution-api.tls.certresolver=cloudflare"
      - "traefik.http.routers.evolution-api.priority=100"
      # Web UI router with Authelia (lower priority)
      - "traefik.http.routers.evolution.rule=Host(`wpp.ai-impress.com`)"
      - "traefik.http.routers.evolution.entrypoints=websecure"
      - "traefik.http.routers.evolution.tls.certresolver=cloudflare"
      - "traefik.http.routers.evolution.middlewares=authentik@file"
      - "traefik.http.routers.evolution.priority=50"
      # Service
      - "traefik.http.services.evolution.loadbalancer.server.port=8080"

volumes:
  evolution-data:

networks:
  traefik-public:
    external: true
  database-internal:
    external: true
```

### ${f}
```yaml
services:
  prometheus:
    image: prom/prometheus:latest
    container_name: prometheus
    restart: unless-stopped
    volumes:
      - ./prometheus:/etc/prometheus
      - prometheus_data:/prometheus
    command:
      - '--config.file=/etc/prometheus/prometheus.yml'
      - '--storage.tsdb.path=/prometheus'
      - '--web.console.libraries=/etc/prometheus/console_libraries'
      - '--web.console.templates=/etc/prometheus/consoles'
      - '--storage.tsdb.retention.time=30d'
      - '--web.enable-lifecycle'
    ports:
      - "9090:9090"
    networks:
      - monitoring

  grafana:
    image: grafana/grafana:latest
    container_name: grafana
    restart: unless-stopped
    volumes:
      - ./grafana:/var/lib/grafana
      - ./grafana/provisioning:/etc/grafana/provisioning
    environment:
      - GF_SECURITY_ADMIN_PASSWORD=admin123
      - GF_USERS_ALLOW_SIGN_UP=false
    ports:
      - "3000:3000"
    networks:
      - monitoring
    depends_on:
      - prometheus

  node-exporter:
    image: prom/node-exporter:latest
    container_name: node-exporter
    restart: unless-stopped
    volumes:
      - /proc:/host/proc:ro
      - /sys:/host/sys:ro
      - /:/rootfs:ro
    command:
      - '--path.procfs=/host/proc'
      - '--path.rootfs=/rootfs'
      - '--path.sysfs=/host/sys'
      - '--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)'
    ports:
      - "9100:9100"
    networks:
      - monitoring

  cadvisor:
    image: gcr.io/cadvisor/cadvisor:v0.47.0
    container_name: cadvisor
    restart: unless-stopped
    volumes:
      - /:/rootfs:ro
      - /var/run:/var/run:ro
      - /sys:/sys:ro
      - /var/lib/docker/:/var/lib/docker:ro
      - /dev/disk/:/dev/disk:ro
    ports:
      - "8081:8080"
    networks:
      - monitoring

  alertmanager:
    image: prom/alertmanager:latest
    container_name: alertmanager
    restart: unless-stopped
    volumes:
      - ./alertmanager:/etc/alertmanager
    command:
      - '--config.file=/etc/alertmanager/config.yml'
      - '--storage.path=/alertmanager'
    ports:
      - "9093:9093"
    networks:
      - monitoring

networks:
  monitoring:
    driver: bridge

volumes:
  prometheus_data:
    driver: local
  grafana_data:
    driver: local
```

### ${f}
```yaml
version: '3.8'

services:
  uptime-kuma:
    image: louislam/uptime-kuma:latest
    container_name: uptime-kuma
    restart: unless-stopped
    networks:
      - traefik-public
    volumes:
      - uptime-kuma-data:/app/data
    environment:
      # SMTP Configuration - Office365
      SMTPHOST: aiimpress-com0e.mail.protection.outlook.com
      SMTPPORT: 25
      SMTPSECURE: "true"
      SMTPFROM: noreply@ai-impress.com
      TIMEZONE: Europe/London
    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=traefik-public"
      - "traefik.http.routers.uptime-kuma.rule=Host(`status.ai-impress.com`)"
      - "traefik.http.routers.uptime-kuma.entrypoints=websecure"
      - "traefik.http.routers.uptime-kuma.tls.certresolver=cloudflare"
      - "traefik.http.services.uptime-kuma.loadbalancer.server.port=3001"
      - "traefik.http.routers.uptime-kuma.middlewares=authentik@file"

networks:
  traefik-public:
    external: true

volumes:
  uptime-kuma-data:
    external: true
    name: uptime-kuma_uptime-kuma-data
```

### ${f}
```yaml
services:
  portainer:
    image: portainer/portainer-ce:latest
    container_name: portainer
    restart: unless-stopped
    security_opt:
      - no-new-privileges:true
    networks:
      - traefik-public
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - portainer-data:/data
    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=traefik-public"
      - "traefik.http.routers.portainer.entrypoints=websecure"
      - "traefik.http.routers.portainer.rule=Host(`portainer.ai-impress.com`)"
      - "traefik.http.routers.portainer.tls=true"
      - "traefik.http.routers.portainer.tls.certresolver=cloudflare"
      - "traefik.http.routers.portainer.middlewares=authentik@file"
      - "traefik.http.services.portainer.loadbalancer.server.port=9000"

networks:
  traefik-public:
    external: true

volumes:
  portainer-data:
    external: true
    name: portainer_portainer-data
```

### ${f}
```yaml
version: "3.8"

services:
  postgresql:
    image: postgres:16-alpine
    container_name: authentik-postgres
    restart: unless-stopped
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -d ${POSTGRES_DB} -U ${POSTGRES_USER}"]
      start_period: 20s
      interval: 30s
      retries: 5
      timeout: 5s
    volumes:
      - authentik-postgres-data:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
      POSTGRES_USER: ${POSTGRES_USER}
      POSTGRES_DB: ${POSTGRES_DB}
    networks:
      - authentik-internal

  redis:
    image: redis:alpine
    container_name: authentik-redis
    command: --save 60 1 --loglevel warning --requirepass ${REDIS_PASSWORD}
    restart: unless-stopped
    healthcheck:
      test: ["CMD-SHELL", "redis-cli --pass ${REDIS_PASSWORD} ping | grep PONG"]
      start_period: 20s
      interval: 30s
      retries: 5
      timeout: 3s
    volumes:
      - authentik-redis-data:/data
    networks:
      - authentik-internal

  server:
    image: ghcr.io/goauthentik/server:2025.10
    container_name: authentik-server
    restart: unless-stopped
    command: server
    environment:
      AUTHENTIK_SECRET_KEY: ${AUTHENTIK_SECRET_KEY}
      AUTHENTIK_ERROR_REPORTING__ENABLED: ${AUTHENTIK_ERROR_REPORTING__ENABLED}
      AUTHENTIK_LOG_LEVEL: ${AUTHENTIK_LOG_LEVEL}
      AUTHENTIK_REDIS__HOST: redis
      AUTHENTIK_REDIS__PASSWORD: ${REDIS_PASSWORD}
      AUTHENTIK_POSTGRESQL__HOST: postgresql
      AUTHENTIK_POSTGRESQL__USER: ${POSTGRES_USER}
      AUTHENTIK_POSTGRESQL__NAME: ${POSTGRES_DB}
      AUTHENTIK_POSTGRESQL__PASSWORD: ${POSTGRES_PASSWORD}
    volumes:
      - ./media:/media
      - ./custom-templates:/templates
      - ./blueprints:/blueprints/custom
    ports:
      - "9000:9000"
      - "9443:9443"
    healthcheck:
      test: ["CMD-SHELL", "python -c 'import urllib.request; urllib.request.urlopen(\"http://localhost:9000/-/health/ready/\")' || exit 1"]
      start_period: 90s
      interval: 30s
      retries: 5
      timeout: 5s
    depends_on:
      postgresql:
        condition: service_healthy
      redis:
        condition: service_healthy
    networks:
      - authentik-internal
      - traefik-public
    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=traefik-public"
      - "traefik.http.routers.authentik.rule=Host(`auth.ai-impress.com`)"
      - "traefik.http.routers.authentik.entrypoints=websecure"
      - "traefik.http.routers.authentik.tls.certresolver=cloudflare"
      - "traefik.http.services.authentik.loadbalancer.server.port=9000"

  worker:
    image: ghcr.io/goauthentik/server:2025.10
    container_name: authentik-worker
    restart: unless-stopped
    command: worker
    environment:
      AUTHENTIK_SECRET_KEY: ${AUTHENTIK_SECRET_KEY}
      AUTHENTIK_ERROR_REPORTING__ENABLED: ${AUTHENTIK_ERROR_REPORTING__ENABLED}
      AUTHENTIK_LOG_LEVEL: ${AUTHENTIK_LOG_LEVEL}
      AUTHENTIK_REDIS__HOST: redis
      AUTHENTIK_REDIS__PASSWORD: ${REDIS_PASSWORD}
      AUTHENTIK_POSTGRESQL__HOST: postgresql
      AUTHENTIK_POSTGRESQL__USER: ${POSTGRES_USER}
      AUTHENTIK_POSTGRESQL__NAME: ${POSTGRES_DB}
      AUTHENTIK_POSTGRESQL__PASSWORD: ${POSTGRES_PASSWORD}
    user: root
    volumes:
      - ./media:/media
      - ./custom-templates:/templates
      - ./blueprints:/blueprints/custom
      - /var/run/docker.sock:/var/run/docker.sock
      - ./certs:/certs
    depends_on:
      postgresql:
        condition: service_healthy
      redis:
        condition: service_healthy
    networks:
      - authentik-internal

  proxy:
    image: ghcr.io/goauthentik/proxy:2025.10
    container_name: authentik-proxy
    restart: unless-stopped
    environment:
      AUTHENTIK_HOST: http://authentik-server:9000
      AUTHENTIK_HOST_BROWSER: https://auth.ai-impress.com
      AUTHENTIK_INSECURE: "false"
      AUTHENTIK_TOKEN: 07EyrIosrXyWjPO8Mk3QbSMm1JZI3gUIwaFKsbNXbJSv7WAOeI1MCBxnOW5Y
    networks:
      - traefik-public
      - authentik-internal
    depends_on:
      server:
        condition: service_healthy

volumes:
  authentik-postgres-data:
    driver: local
  authentik-redis-data:
    driver: local

networks:
  authentik-internal:
    driver: bridge
  traefik-public:
    external: true
```

### ${f}
```yaml
version: '3.8'

services:
  vaultwarden:
    image: vaultwarden/server:1.30.5-alpine
    container_name: vaultwarden
    restart: unless-stopped
    networks:
      - traefik-public
      - database-internal
    env_file:
      - .env
    environment:
      DOMAIN: https://vault.ai-impress.com
      SIGNUPS_ALLOWED: 'true'
      INVITATIONS_ALLOWED: 'true'
      SHOW_PASSWORD_HINT: 'false'
      ADMIN_TOKEN: ${ADMIN_TOKEN}
      DATABASE_URL: postgresql://${DB_USER}:${DB_PASSWORD}@postgres-main:5432/vaultwarden
      SMTP_HOST: ${SMTP_HOST}
      SMTP_FROM: ${SMTP_FROM}
      SMTP_PORT: 587
      SMTP_SECURITY: starttls
      SMTP_USERNAME: ${SMTP_USERNAME}
      SMTP_PASSWORD: ${SMTP_PASSWORD}
      SMTP_TIMEOUT: 15
      WEB_VAULT_ENABLED: 'true'
    volumes:
      - vaultwarden-data:/data
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.vaultwarden.rule=Host(`vault.ai-impress.com`)"
      - "traefik.http.routers.vaultwarden.entrypoints=websecure"
      - "traefik.http.routers.vaultwarden.tls.certresolver=cloudflare"
      - "traefik.http.services.vaultwarden.loadbalancer.server.port=80"
      - "traefik.http.routers.vaultwarden.middlewares=security-headers@file"
      
      # Admin panel
      - "traefik.http.routers.vaultwarden-admin.rule=Host(`vault.ai-impress.com`) && PathPrefix(`/admin`)"
      - "traefik.http.routers.vaultwarden-admin.entrypoints=websecure"
      - "traefik.http.routers.vaultwarden-admin.tls.certresolver=cloudflare"

volumes:
  vaultwarden-data:

networks:
  traefik-public:
    external: true
  database-internal:
    external: true
```

## 🔐 Authentik & Traefik
14f3766d108b   ghcr.io/goauthentik/server:2025.10       "dumb-init -- ak ser…"    2 days ago     Up 24 hours (healthy)     0.0.0.0:9000->9000/tcp, [::]:9000->9000/tcp, 0.0.0.0:9443->9443/tcp, [::]:9443->9443/tcp                 authentik-server
93dbb65f83b1   ghcr.io/goauthentik/server:2025.10       "dumb-init -- ak wor…"    2 days ago     Up 24 hours (healthy)                                                                                                              authentik-worker
8dda5460003c   redis:alpine                             "docker-entrypoint.s…"    2 days ago     Up 24 hours (healthy)     6379/tcp                                                                                                 authentik-redis
cc9c776ce2a8   postgres:16-alpine                       "docker-entrypoint.s…"    2 days ago     Up 24 hours (healthy)     5432/tcp                                                                                                 authentik-postgres
b6c668c7a683   traefik:latest                           "/entrypoint.sh --co…"    2 days ago     Up 24 hours               0.0.0.0:80->80/tcp, [::]:80->80/tcp, 0.0.0.0:443->443/tcp, [::]:443->443/tcp, 127.0.0.1:8080->8080/tcp   traefik

{
  "com.docker.compose.config-hash": "4ec0bab69b6523e7154c3cf701598a016cb192388e56d4aafed01f74f812a5b8",
  "com.docker.compose.container-number": "1",
  "com.docker.compose.depends_on": "",
  "com.docker.compose.image": "sha256:8113f16a03a3f01546afa0ac6312322d06294194357e108d819d35a682dfe0f2",
  "com.docker.compose.oneoff": "False",
  "com.docker.compose.project": "traefik",
  "com.docker.compose.project.config_files": "/opt/00-infrastructure/traefik/docker-compose.yml",
  "com.docker.compose.project.working_dir": "/opt/00-infrastructure/traefik",
  "com.docker.compose.replace": "traefik",
  "com.docker.compose.service": "traefik",
  "com.docker.compose.version": "2.40.0",
  "org.opencontainers.image.description": "A modern reverse-proxy",
  "org.opencontainers.image.documentation": "https://docs.traefik.io",
  "org.opencontainers.image.source": "https://github.com/traefik/traefik",
  "org.opencontainers.image.title": "Traefik",
  "org.opencontainers.image.url": "https://traefik.io",
  "org.opencontainers.image.vendor": "Traefik Labs",
  "org.opencontainers.image.version": "v3.5.4",
  "traefik.enable": "true",
  "traefik.http.routers.traefik-dashboard.entrypoints": "websecure",
  "traefik.http.routers.traefik-dashboard.middlewares": "authentik@file",
  "traefik.http.routers.traefik-dashboard.rule": "Host(`traefik.ai-impress.com`)",
  "traefik.http.routers.traefik-dashboard.service": "api@internal",
  "traefik.http.routers.traefik-dashboard.tls.certresolver": "cloudflare",
  "traefik.http.services.traefik-dashboard.loadbalancer.server.port": "8080"
}

## 🗄️ Databases
### PostgreSQL databases:

### Redis:

## 🧩 Backup & Monitoring
total 248K
drwxrwxr-x  2 ubuntu ubuntu 4.0K Oct 26 14:58 authelia
drwxrwxr-x  2 ubuntu ubuntu 4.0K Oct 26 15:34 authentik
drwxrwxr-x 21 ubuntu ubuntu 4.0K Nov  1 00:36 configs
drwxrwxr-x  4 ubuntu ubuntu 4.0K Oct 20 13:04 databases
drwxr-xr-x  3 ubuntu ubuntu 4.0K Oct 15 09:30 docker
drwxrwxr-x  2 ubuntu ubuntu 4.0K Nov  1 03:01 documenso
drwxr-xr-x 11 ubuntu ubuntu 4.0K Oct 18 03:00 espocrm
drwxrwxr-x  2 ubuntu ubuntu 4.0K Nov  1 03:00 evolution-api
drwxrwxr-x  2 ubuntu ubuntu 4.0K Nov  1 03:00 evolution-data
drwxrwxr-x  2 ubuntu ubuntu 4.0K Nov  1 03:00 grafana
drwxr-xr-x  2 ubuntu ubuntu 4.0K Oct 22 03:00 librechat
drwxrwxr-x  2 ubuntu ubuntu 4.0K Nov  1 03:01 loki
drwxr-xr-x  2 ubuntu ubuntu  16K Oct 13 09:39 lost+found
drwxrwxr-x  2 ubuntu ubuntu 4.0K Nov  1 03:00 mautic-data
drwxrwxr-x  2 ubuntu ubuntu 4.0K Nov  1 03:00 mautic-db
drwxr-xr-x  5 ubuntu ubuntu  12K Oct 23 03:00 mongodb
drwxrwxr-x  2 ubuntu ubuntu 4.0K Nov  1 03:00 n8n
drwx------  2 ubuntu ubuntu 4.0K Oct 24 21:17 n8n-postgres
drwxr-xr-x  6 ubuntu ubuntu 4.0K Oct 23 03:00 odoo
-rwxr-xr-x 1 ubuntu ubuntu 7.6K Oct 26 17:34 authentik-services-manager.sh
-rwxr-xr-x 1 root   root   2.3K Oct 29 13:51 auto-update.sh
-rwxr-xr-x 1 ubuntu ubuntu 8.6K Oct 20 10:27 backup-app.sh
-rwxr-xr-x 1 ubuntu ubuntu  12K Oct 26 17:09 backup-authentik-improved.sh
-rwxrwxr-x 1 ubuntu ubuntu  923 Oct 26 15:07 backup-authentik.sh
-rwxr-xr-x 1 root   root   1.2K Oct 29 22:39 backup-configs.sh
-rwxrwxr-x 1 ubuntu ubuntu  16K Oct 30 19:08 backup-full.sh
-rwxr-xr-x 1 root   root   4.8K Oct 24 22:11 backup-full.sh.backup-20251024-231153
-rwxrwxr-x 1 ubuntu ubuntu  14K Oct 26 14:57 backup-full.sh.backup-20251026-145737
-rwxrwxr-x 1 ubuntu ubuntu  14K Oct 30 19:07 backup-full.sh.backup-before-new-services
-rwxrwxr-x 1 ubuntu ubuntu  14K Oct 24 22:12 backup-full.sh.bak
-rwxr-xr-x 1 root   root   1.4K Oct 29 20:54 check-backups.sh
-rwxr-xr-x 1 ubuntu ubuntu 6.0K Oct 20 11:56 check-updates.sh
-rwxr-xr-x 1 ubuntu ubuntu 4.2K Oct 20 11:12 check-updates.sh.backup
-rwxr-xr-x 1 ubuntu ubuntu 4.9K Oct 20 11:54 check-updates.sh.backup-20251020-115409
-rwxrwxr-x 1 ubuntu ubuntu 1.6K Oct 17 22:22 create-client-database.sh
-rwxrwxr-x 1 ubuntu ubuntu 5.8K Oct 17 22:26 create-n8n-vip-instance.sh
-rwxrwxr-x 1 ubuntu ubuntu 5.4K Oct 23 22:04 generate-env-from-vault.sh
-rwxrwxr-x 1 ubuntu ubuntu 5.2K Oct 23 21:55 generate-env-from-vault.sh.backup-20251023-225538
-rwxrwxr-x 1 ubuntu ubuntu 1.6K Oct 17 22:23 get-client-credentials.sh
-rwxr-xr-x 1 ubuntu ubuntu  14K Oct 26 17:10 health-check-improved.sh
-rwxr-xr-x 1 root   root   5.7K Oct 29 13:51 health-check.sh
-rwxrwxr-x 1 ubuntu ubuntu 2.5K Oct 20 15:01 health-check.sh.backup-20251020-160110
-rwxrwxr-x 1 ubuntu ubuntu 5.2K Oct 24 22:39 health-check.sh.backup-20251024-223943
-rwxrwxr-x 1 ubuntu ubuntu 5.5K Oct 25 22:36 health-check.sh.backup-20251025-223638
-rwxrwxr-x 1 ubuntu ubuntu 5.4K Oct 25 23:34 health-check.sh.backup-20251025-233447
-rwxrwxr-x 1 ubuntu ubuntu 5.5K Oct 26 04:00 health-check.sh.backup-20251026-040001
-rwxrwxr-x 1 ubuntu ubuntu 5.6K Oct 26 18:10 health-check.sh.backup-20251026-181026
-rwxrwxr-x 1 ubuntu ubuntu 5.8K Oct 27 12:24 health-check.sh.backup-20251027-122447
-rwxr-xr-x 1 root   root   6.5K Oct 29 13:51 health-check.sh.backup-20251029-135119
-rwxr-xr-x 1 ubuntu ubuntu  17K Oct 24 22:38 infrastructure-scanner.sh
-rwxr-xr-x 1 ubuntu ubuntu  15K Oct 26 17:08 migrate-authelia-to-authentik.sh
-rwxrwxr-x 1 ubuntu ubuntu 5.9K Oct 24 22:44 scripts-help.sh
-rwxr-xr-x 1 ubuntu ubuntu  11K Oct 20 11:54 update-app.sh
-rwxr-xr-x 1 ubuntu ubuntu  11K Oct 20 11:54 update-app.sh.backup-20251020-115409
-rwxrwxr-x 1 ubuntu ubuntu 2.2K Oct 29 18:11 update-docker-images.sh
-rwxr-xr-x 1 ubuntu ubuntu  13K Oct 20 11:54 update-manager.sh
-rwxr-xr-x 1 ubuntu ubuntu  13K Oct 20 11:54 update-manager.sh.backup-20251020-115409
-rwxrwxr-x 1 ubuntu ubuntu  15K Oct 20 12:11 upload-full-docs.sh
-rwxrwxr-x 1 ubuntu ubuntu 1.3K Oct 16 16:52 vault-helper.sh

## 🧭 Mount Points
sdb     ext4    300G /mnt/psql-data
sdc     ext4    400G /mnt/backups

_Generated automatically by AI-Impress Infrastructure Auditor_

## 🗺️ Service & Dependency Map

### Traefik Routes
com.docker.compose.config-hash: 4ec0bab69b6523e7154c3cf701598a016cb192388e56d4aafed01f74f812a5b8
com.docker.compose.container-number: 1
com.docker.compose.depends_on: 
com.docker.compose.image: sha256:8113f16a03a3f01546afa0ac6312322d06294194357e108d819d35a682dfe0f2
com.docker.compose.oneoff: False
com.docker.compose.project: traefik
com.docker.compose.project.config_files: /opt/00-infrastructure/traefik/docker-compose.yml
com.docker.compose.project.working_dir: /opt/00-infrastructure/traefik
com.docker.compose.replace: traefik
com.docker.compose.service: traefik
com.docker.compose.version: 2.40.0
org.opencontainers.image.description: A modern reverse-proxy
org.opencontainers.image.documentation: https://docs.traefik.io
org.opencontainers.image.source: https://github.com/traefik/traefik
org.opencontainers.image.title: Traefik
org.opencontainers.image.url: https://traefik.io
org.opencontainers.image.vendor: Traefik Labs
org.opencontainers.image.version: v3.5.4
traefik.enable: true
traefik.http.routers.traefik-dashboard.entrypoints: websecure
traefik.http.routers.traefik-dashboard.middlewares: authentik@file
traefik.http.routers.traefik-dashboard.rule: Host(`traefik.ai-impress.com`)
traefik.http.routers.traefik-dashboard.service: api@internal
traefik.http.routers.traefik-dashboard.tls.certresolver: cloudflare
traefik.http.services.traefik-dashboard.loadbalancer.server.port: 8080

### Docker Networks (who is connected where)
Network: aiimpress -> Containers: 
Network: authentik_authentik-internal -> Containers: authentik-server authentik-redis authentik-worker authentik-postgres 
Network: bridge -> Containers: keen_cannon ecstatic_galois eloquent_chatelet naughty_elion distracted_carver stoic_tesla competent_chaplygin recursing_moser relaxed_hopper sweet_hoover gifted_dirac nostalgic_engelbart youthful_ishizaka 
Network: database-internal -> Containers: outline n8n-worker-1 n8n-worker-4 odoo vaultwarden n8n-worker-2 pgadmin postgres-exporter n8n-worker-3 n8n-shared documenso rabbitmq redis-main postgres-main evolution-api wikijs 
Network: host -> Containers: 
Network: mautic-internal -> Containers: 
Network: mautic_mautic-internal -> Containers: mautic mautic-sync-webhook mautic-db 
Network: monitoring_monitoring -> Containers: grafana cadvisor promtail blackbox-exporter postgres-exporter prometheus loki node-exporter alertmanager 
Network: n8n-shared -> Containers: n8n-worker-1 n8n-worker-4 n8n-worker-2 n8n-worker-3 n8n-shared 
Network: none -> Containers: 
Network: odoo-internal -> Containers: mautic-odoo-sync-v2 
Network: postiz-config_postiz-internal -> Containers: postiz postiz-redis postiz-postgres 
Network: postiz_postiz-internal -> Containers: 
Network: sftp_default -> Containers: sftp-server 
Network: supabase_default -> Containers: supabase-db supabase-auth supabase-meta supabase-studio supabase-kong supabase-pooler supabase-vector supabase-analytics supabase-edge-functions supabase-imgproxy realtime-dev.supabase-realtime supabase-storage supabase-rest 
Network: traefik-public -> Containers: portainer outline authentik-server odoo vaultwarden postiz uptime-kuma pgadmin supabase-kong n8n-shared mautic documenso rabbitmq traefik mautic-sync-webhook postgres-main evolution-api vault mautic-odoo-sync-v2 wikijs landing-page 
Network: vault-internal -> Containers: vault 

### Databases and linked services
supabase-rest	postgrest/postgrest:latest	supabase_default
authentik-postgres	postgres:16-alpine	authentik_authentik-internal
postgres-exporter	prometheuscommunity/postgres-exporter	database-internal,monitoring_monitoring
postiz-postgres	postgres:16-alpine	postiz-config_postiz-internal
supabase-meta	supabase/postgres-meta:v0.91.6	supabase_default
supabase-db	supabase/postgres:15.8.1.085	supabase_default
postgres-main	postgres:16-alpine	database-internal,traefik-public
authentik-redis	redis:alpine	authentik_authentik-internal
postiz-redis	redis:7-alpine	postiz-config_postiz-internal
redis-main	redis:7-alpine	database-internal
supabase-kong	kong:latest	traefik-public,supabase_default
supabase-vector	timberio/vector:latest-alpine	supabase_default
supabase-imgproxy	darthsim/imgproxy:latest	supabase_default
supabase-rest	postgrest/postgrest:latest	supabase_default
supabase-auth	supabase/gotrue:v2.180.0	supabase_default
supabase-storage	supabase/storage-api:v1.28.0	supabase_default
realtime-dev.supabase-realtime	supabase/realtime:v2.51.11	supabase_default
supabase-pooler	supabase/supavisor:2.7.0	supabase_default
supabase-edge-functions	supabase/edge-runtime:v1.69.6	supabase_default
supabase-meta	supabase/postgres-meta:v0.91.6	supabase_default
supabase-studio	supabase/studio:2025.10.01-sha-8460121	supabase_default
supabase-analytics	supabase/logflare:1.22.6	supabase_default
supabase-db	supabase/postgres:15.8.1.085	supabase_default

### Authentik Clients
