diff --git a/modules/baserow/module.json b/modules/baserow/module.json index 06538df..07bbebd 100644 --- a/modules/baserow/module.json +++ b/modules/baserow/module.json @@ -6,16 +6,22 @@ ], "requires": [ "postgres-database", - "redis-cache" + "redis-cache", + "route" ], "contributes": { "postgres-database": { "name": "baserow" + }, + "route": { + "name": "baserow.zurag.be", + "port": 80 } }, "binds": { "postgres-database": "/var/lib/baserow/database.json", - "redis-cache": "/var/lib/baserow/redis.json" + "redis-cache": "/var/lib/baserow/redis.json", + "route": "/var/lib/baserow/route.json" }, "secrets": { "postgres-database": "/var/lib/baserow/database.secret", diff --git a/modules/bazarr/module.json b/modules/bazarr/module.json index 6267f9b..de79494 100644 --- a/modules/bazarr/module.json +++ b/modules/bazarr/module.json @@ -103,5 +103,17 @@ "runtime-config" ] } - ] + ], + "requires": [ + "route" + ], + "contributes": { + "route": { + "name": "bazarr.zurag.be", + "port": 6767 + } + }, + "binds": { + "route": "/var/lib/mesh/bazarr/route.json" + } } diff --git a/modules/bookshelf/module.json b/modules/bookshelf/module.json index af52d4d..c213633 100644 --- a/modules/bookshelf/module.json +++ b/modules/bookshelf/module.json @@ -79,5 +79,17 @@ "MESH_BOOKSHELF_CONFIG_DIR": "/var/lib/bookshelf/config" } } - ] + ], + "requires": [ + "route" + ], + "contributes": { + "route": { + "name": "bookshelf.zurag.be", + "port": 8787 + } + }, + "binds": { + "route": "/var/lib/mesh/bookshelf/route.json" + } } diff --git a/modules/gitea/module.json b/modules/gitea/module.json index e1c8563..73be149 100644 --- a/modules/gitea/module.json +++ b/modules/gitea/module.json @@ -2,15 +2,21 @@ "module": "gitea", "version": "1", "requires": [ - "postgres-database" + "postgres-database", + "route" ], "contributes": { "postgres-database": { "name": "gitea" + }, + "route": { + "name": "gitea.novox.be", + "port": 3000 } }, "binds": { - "postgres-database": "/var/lib/gitea/database.json" + "postgres-database": "/var/lib/gitea/database.json", + "route": "/var/lib/gitea/route.json" }, "secrets": { "postgres-database": "/var/lib/gitea/database.secret" diff --git a/modules/grafana/module.json b/modules/grafana/module.json index 8513f35..a772006 100644 --- a/modules/grafana/module.json +++ b/modules/grafana/module.json @@ -88,5 +88,17 @@ "runtime-config" ] } - ] + ], + "requires": [ + "route" + ], + "contributes": { + "route": { + "name": "grafana.zurag.be", + "port": 3000 + } + }, + "binds": { + "route": "/var/lib/mesh/grafana/route.json" + } } diff --git a/modules/home-assistant/module.json b/modules/home-assistant/module.json index 1b8fcbc..ef0d33e 100644 --- a/modules/home-assistant/module.json +++ b/modules/home-assistant/module.json @@ -77,5 +77,17 @@ "runtime-config" ] } - ] + ], + "requires": [ + "route" + ], + "contributes": { + "route": { + "name": "home-assistant.zurag.be", + "port": 8123 + } + }, + "binds": { + "route": "/var/lib/mesh/home-assistant/route.json" + } } diff --git a/modules/invoicing/module.json b/modules/invoicing/module.json index 22c1afd..e20e981 100644 --- a/modules/invoicing/module.json +++ b/modules/invoicing/module.json @@ -6,7 +6,8 @@ ], "requires": [ "mongodb-database", - "s3-bucket" + "s3-bucket", + "route" ], "contributes": { "mongodb-database": { @@ -14,11 +15,16 @@ }, "s3-bucket": { "bucket": "invoicing" + }, + "route": { + "name": "invoicing.novox.be", + "port": 80 } }, "binds": { "mongodb-database": "/var/lib/invoicing/database.json", - "s3-bucket": "/var/lib/invoicing/store.json" + "s3-bucket": "/var/lib/invoicing/store.json", + "route": "/var/lib/invoicing/route.json" }, "secrets": { "mongodb-database": "/var/lib/invoicing/database.secret", diff --git a/modules/jackett/module.json b/modules/jackett/module.json index d4ed722..f93db3b 100644 --- a/modules/jackett/module.json +++ b/modules/jackett/module.json @@ -75,5 +75,17 @@ ], "own-secrets": { "broker": "/var/lib/mesh/jackett/broker" + }, + "requires": [ + "route" + ], + "contributes": { + "route": { + "name": "jackett.zurag.be", + "port": 9117 + } + }, + "binds": { + "route": "/var/lib/mesh/jackett/route.json" } } diff --git a/modules/keycloak/module.json b/modules/keycloak/module.json index 5796049..94194cb 100644 --- a/modules/keycloak/module.json +++ b/modules/keycloak/module.json @@ -2,15 +2,21 @@ "module": "keycloak", "version": "1", "requires": [ - "postgres-database" + "postgres-database", + "route" ], "contributes": { "postgres-database": { "name": "keycloak" + }, + "route": { + "name": "keycloak.novox.be", + "port": 8080 } }, "binds": { - "postgres-database": "/var/lib/keycloak/database.json" + "postgres-database": "/var/lib/keycloak/database.json", + "route": "/var/lib/keycloak/route.json" }, "secrets": { "postgres-database": "/var/lib/keycloak/database.secret" diff --git a/modules/lidarr/module.json b/modules/lidarr/module.json index c285762..6a0985b 100644 --- a/modules/lidarr/module.json +++ b/modules/lidarr/module.json @@ -79,5 +79,17 @@ "MESH_LIDARR_CONFIG_DIR": "/var/lib/lidarr/config" } } - ] + ], + "requires": [ + "route" + ], + "contributes": { + "route": { + "name": "lidarr.zurag.be", + "port": 8686 + } + }, + "binds": { + "route": "/var/lib/mesh/lidarr/route.json" + } } diff --git a/modules/mailu/module.json b/modules/mailu/module.json index 767656b..be37236 100644 --- a/modules/mailu/module.json +++ b/modules/mailu/module.json @@ -5,15 +5,21 @@ "container-runtime" ], "requires": [ - "postgres-database" + "postgres-database", + "route" ], "contributes": { "postgres-database": { "name": "mailu" + }, + "route": { + "name": "mail.novox.be", + "port": 7080 } }, "binds": { - "postgres-database": "/var/lib/mailu/database.json" + "postgres-database": "/var/lib/mailu/database.json", + "route": "/var/lib/mailu/route.json" }, "secrets": { "postgres-database": "/var/lib/mailu/database.secret" diff --git a/modules/nextcloud/module.json b/modules/nextcloud/module.json index 3502446..7560c5b 100644 --- a/modules/nextcloud/module.json +++ b/modules/nextcloud/module.json @@ -3,7 +3,8 @@ "version": "1", "requires": [ "postgres-database", - "s3-bucket" + "s3-bucket", + "route" ], "contributes": { "postgres-database": { @@ -11,11 +12,16 @@ }, "s3-bucket": { "bucket": "nextcloud" + }, + "route": { + "name": "nextcloud.novox.be", + "port": 80 } }, "binds": { "postgres-database": "/var/lib/nextcloud-module/database.json", - "s3-bucket": "/var/lib/nextcloud-module/store.json" + "s3-bucket": "/var/lib/nextcloud-module/store.json", + "route": "/var/lib/nextcloud-module/route.json" }, "secrets": { "postgres-database": "/var/lib/nextcloud-module/database.secret", diff --git a/modules/nodered/module.json b/modules/nodered/module.json index a512948..c2e6886 100644 --- a/modules/nodered/module.json +++ b/modules/nodered/module.json @@ -74,5 +74,17 @@ "runtime-config" ] } - ] + ], + "requires": [ + "route" + ], + "contributes": { + "route": { + "name": "nodered.zurag.be", + "port": 1880 + } + }, + "binds": { + "route": "/var/lib/mesh/nodered/route.json" + } } diff --git a/modules/ombi/module.json b/modules/ombi/module.json index 727355c..df07625 100644 --- a/modules/ombi/module.json +++ b/modules/ombi/module.json @@ -82,5 +82,17 @@ "runtime-config" ] } - ] + ], + "requires": [ + "route" + ], + "contributes": { + "route": { + "name": "ombi.zurag.be", + "port": 3579 + } + }, + "binds": { + "route": "/var/lib/mesh/ombi/route.json" + } } diff --git a/modules/photos-eef/module.json b/modules/photos-eef/module.json new file mode 100644 index 0000000..9e21d0a --- /dev/null +++ b/modules/photos-eef/module.json @@ -0,0 +1,51 @@ +{ + "module": "photos-eef", + "version": "1", + "slug": "eef", + "capabilities": [ + "container-runtime" + ], + "requires": [ + "route" + ], + "contributes": { + "route": { + "name": "eef.novox.be", + "port": 4012 + } + }, + "binds": { + "route": "/var/lib/photos-eef/route.json" + }, + "listens": [ + { + "port": 4012, + "protocol": "tcp", + "from": "mesh", + "why": "the eef photos client site over http; the public name eef.novox.be is a route grant, and route-proxy reaches it on this published port" + } + ], + "resources": [ + { + "id": "state", + "type": "directory", + "path": "/var/lib/photos-eef", + "mode": "0700" + }, + { + "id": "net", + "type": "network", + "name": "photos-eef" + }, + { + "id": "client", + "type": "container", + "name": "photos-eef", + "image": "registry-api.novox.be/novox/photos-client:latest", + "network": "photos-eef", + "ports": [ + "4012:80" + ] + } + ] +} diff --git a/modules/photos-filip/module.json b/modules/photos-filip/module.json new file mode 100644 index 0000000..44cef84 --- /dev/null +++ b/modules/photos-filip/module.json @@ -0,0 +1,51 @@ +{ + "module": "photos-filip", + "version": "1", + "slug": "filip", + "capabilities": [ + "container-runtime" + ], + "requires": [ + "route" + ], + "contributes": { + "route": { + "name": "filip.novox.be", + "port": 4013 + } + }, + "binds": { + "route": "/var/lib/photos-filip/route.json" + }, + "listens": [ + { + "port": 4013, + "protocol": "tcp", + "from": "mesh", + "why": "the filip photos client site over http; the public name filip.novox.be is a route grant, and route-proxy reaches it on this published port" + } + ], + "resources": [ + { + "id": "state", + "type": "directory", + "path": "/var/lib/photos-filip", + "mode": "0700" + }, + { + "id": "net", + "type": "network", + "name": "photos-filip" + }, + { + "id": "client", + "type": "container", + "name": "photos-filip", + "image": "registry-api.novox.be/novox/photos-client:latest", + "network": "photos-filip", + "ports": [ + "4013:80" + ] + } + ] +} diff --git a/modules/photos/module.json b/modules/photos/module.json index 37e3a5f..ada3b85 100644 --- a/modules/photos/module.json +++ b/modules/photos/module.json @@ -85,26 +85,6 @@ "ports": [ "4001:80" ] - }, - { - "id": "eef-client", - "type": "container", - "name": "photos-client-eef", - "image": "registry-api.novox.be/novox/photos-client:latest", - "network": "photos", - "ports": [ - "4002:80" - ] - }, - { - "id": "filip-client", - "type": "container", - "name": "photos-client-filip", - "image": "registry-api.novox.be/novox/photos-client:latest", - "network": "photos", - "ports": [ - "4003:80" - ] } ] } diff --git a/modules/radarr/module.json b/modules/radarr/module.json index 2d09bfe..a46b248 100644 --- a/modules/radarr/module.json +++ b/modules/radarr/module.json @@ -79,5 +79,17 @@ "MESH_RADARR_CONFIG_DIR": "/var/lib/radarr/config" } } - ] + ], + "requires": [ + "route" + ], + "contributes": { + "route": { + "name": "radarr.zurag.be", + "port": 7878 + } + }, + "binds": { + "route": "/var/lib/mesh/radarr/route.json" + } } diff --git a/modules/registry/module.json b/modules/registry/module.json index 08cb45f..cc0a7b8 100644 --- a/modules/registry/module.json +++ b/modules/registry/module.json @@ -54,5 +54,17 @@ "mesh-registry-data:/var/lib/registry" ] } - ] + ], + "requires": [ + "route" + ], + "contributes": { + "route": { + "name": "registry.novox.be", + "port": 5000 + } + }, + "binds": { + "route": "/var/lib/mesh/registry/route.json" + } } diff --git a/modules/searxng/module.json b/modules/searxng/module.json index d1d48dc..dc6f273 100644 --- a/modules/searxng/module.json +++ b/modules/searxng/module.json @@ -99,5 +99,17 @@ "runtime-config" ] } - ] + ], + "requires": [ + "route" + ], + "contributes": { + "route": { + "name": "searxng.zurag.be", + "port": 8080 + } + }, + "binds": { + "route": "/var/lib/searxng-module/route.json" + } } diff --git a/modules/sonarr/module.json b/modules/sonarr/module.json index ace8073..582ac1e 100644 --- a/modules/sonarr/module.json +++ b/modules/sonarr/module.json @@ -84,5 +84,17 @@ "MESH_SONARR_CONFIG_DIR": "/var/lib/sonarr/config" } } - ] + ], + "requires": [ + "route" + ], + "contributes": { + "route": { + "name": "sonarr.zurag.be", + "port": 8989 + } + }, + "binds": { + "route": "/var/lib/mesh/sonarr/route.json" + } } diff --git a/modules/tautulli/module.json b/modules/tautulli/module.json index 1b63d19..6732451 100644 --- a/modules/tautulli/module.json +++ b/modules/tautulli/module.json @@ -78,5 +78,17 @@ "runtime-config" ] } - ] + ], + "requires": [ + "route" + ], + "contributes": { + "route": { + "name": "tautulli.zurag.be", + "port": 8181 + } + }, + "binds": { + "route": "/var/lib/mesh/tautulli/route.json" + } } diff --git a/modules/umami/module.json b/modules/umami/module.json index a9bd185..862f27e 100644 --- a/modules/umami/module.json +++ b/modules/umami/module.json @@ -5,15 +5,21 @@ "container-runtime" ], "requires": [ - "postgres-database" + "postgres-database", + "route" ], "contributes": { "postgres-database": { "name": "umami" + }, + "route": { + "name": "umami.novox.be", + "port": 3000 } }, "binds": { - "postgres-database": "/var/lib/umami/database.json" + "postgres-database": "/var/lib/umami/database.json", + "route": "/var/lib/umami/route.json" }, "secrets": { "postgres-database": "/var/lib/umami/database.secret" @@ -43,7 +49,7 @@ "port": 3000, "protocol": "tcp", "from": "anywhere", - "why": "one port serves two surfaces: the dashboard (the proxy gates it to the mesh) and the public collection endpoint that the browsers of every tracked site POST to — so the port itself must be reachable from anywhere" + "why": "one port serves two surfaces: the dashboard (the proxy gates it to the mesh) and the public collection endpoint that the browsers of every tracked site POST to \u2014 so the port itself must be reachable from anywhere" } ], "resources": [ diff --git a/modules/verdaccio/module.json b/modules/verdaccio/module.json index 17f963a..6d54653 100644 --- a/modules/verdaccio/module.json +++ b/modules/verdaccio/module.json @@ -86,5 +86,17 @@ "runtime-config" ] } - ] + ], + "requires": [ + "route" + ], + "contributes": { + "route": { + "name": "verdaccio.novox.be", + "port": 4873 + } + }, + "binds": { + "route": "/var/lib/mesh/verdaccio/route.json" + } }