{ "module": "photos", "version": "1", "capabilities": [ "container-runtime" ], "requires": [ "s3-bucket", "mongodb-database", "route" ], "contributes": { "s3-bucket": { "bucket": "photos" }, "mongodb-database": { "name": "photos" }, "route": { "label": "photos", "port": 4001 } }, "binds": { "s3-bucket": "/var/lib/photos/store.json", "mongodb-database": "/var/lib/photos/database.json", "route": "/var/lib/photos/route.json" }, "secrets": { "s3-bucket": "/var/lib/photos/store.secret", "mongodb-database": "/var/lib/photos/database.secret" }, "listens": [ { "port": 9000, "protocol": "tcp", "from": "mesh", "why": "the photos backend API; the client sites on the module network call it" }, { "port": 4001, "protocol": "tcp", "from": "mesh", "why": "the admin client site over http; the public name photos.novox.be is a route grant, and route-proxy reaches it on this published port" } ], "resources": [ { "id": "state", "type": "directory", "path": "/var/lib/photos", "mode": "0700" }, { "id": "server-env", "type": "file", "path": "/var/lib/photos/server.env", "mode": "0600", "content": "NODE_ENV=production\nPORT=9000\nMONGO_URL=mongodb://${bound:mongodb-database:as}:${secret:mongodb-database}@${bound:mongodb-database:at}:${bound:mongodb-database:port}/${bound:mongodb-database:as}?authSource=admin\nMONGO_DB=${bound:mongodb-database:as}\nMINIO_ENDPOINT=${bound:s3-bucket:at}\nMINIO_PORT=${bound:s3-bucket:port}\nMINIO_BUCKET=photos\nMINIO_ACCESSKEY=${bound:s3-bucket:as}\nMINIO_SECRET=${secret:s3-bucket}\nMINIO_USE_SSL=false\n" }, { "id": "net", "type": "network", "name": "photos" }, { "id": "server", "type": "container", "name": "photos-server", "image": "registry-api.novox.be/novox/photos-server@sha256:3f165acbbd1fd731b12fe798c95879c081a44b00e2c569ef7f47165f6a527201", "network": "photos", "env-file": [ "/var/lib/photos/server.env" ], "ports": [ "9000" ], "secrets-in-environment": "the server reads its settings from the environment; converting is the per-module work of issue 041" }, { "id": "admin-client", "type": "container", "name": "photos-admin-client", "image": "registry-api.novox.be/novox/photos-admin-client@sha256:f437fa9ed28b29a012f715fb8d9b809a15cff4a672794c620d5d400f57695580", "network": "photos", "ports": [ "4001:80" ] } ] }