Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| project:coopcloud_spike [2025/11/26 16:10] – jade | project:coopcloud_spike [2025/12/05 13:24] (current) – [Experiment 3: Run Kiwix on Raspberry Pi] jade | ||
|---|---|---|---|
| Line 32: | Line 32: | ||
| - ✅ Install an existing Co-op Cloud app with abra | - ✅ Install an existing Co-op Cloud app with abra | ||
| - ✅ Build a [[https:// | - ✅ Build a [[https:// | ||
| - | - Run the Co-op Cloud Kiwix recipe on a Raspberry Pi | + | - ✅ Run the Co-op Cloud Kiwix recipe on a Raspberry Pi |
| - | - Deploy a dummy app that can list other installed apps | + | - ✅ Deploy a dummy app that can list other installed apps |
| - | - //(unknown experiment to verify extending capabilities, | + | |
| ==== Experiment 1: Try using abra ==== | ==== Experiment 1: Try using abra ==== | ||
| Line 55: | Line 54: | ||
| ==== Experiment 3: Run Kiwix on Raspberry Pi ==== | ==== Experiment 3: Run Kiwix on Raspberry Pi ==== | ||
| - | [blocked until I'm back home next week as I don't have a Pi with me] | + | There seems to be no fundamental obstacle to running kiwix on a Raspberry |
| - | ==== Experiment 4: Ensure that a app can get access to the running stacks ==== | + | The recipe that I build is a draft at this stage. It has the following compose |
| + | |||
| + | < | ||
| + | --- | ||
| + | services: | ||
| + | kiwix-serve: | ||
| + | image: offlineinternet/ | ||
| + | networks: | ||
| + | - proxy | ||
| + | volumes: | ||
| + | - kiwix_data:/ | ||
| + | deploy: | ||
| + | restart_policy: | ||
| + | condition: on-failure | ||
| + | labels: | ||
| + | - " | ||
| + | - " | ||
| + | - " | ||
| + | - " | ||
| + | - " | ||
| + | - " | ||
| + | networks: | ||
| + | proxy: | ||
| + | external: true | ||
| + | volumes: | ||
| + | kiwix_data: | ||
| + | </ | ||
| + | |||
| + | Here are some things I learned: | ||
| + | |||
| + | * There is no way to mark the Coop Cloud recipe as supporting particular platforms, despite the fact that the docker image is tagged that way. | ||
| + | * As part of this I ran this on a pi on my local network at radish house. Accessing it on my local network as both radish.local and via an external domain like radish.nodes.merri-bek.tech was hard. I had to pick one. There is an EXTRA_DOMAINS feature in the traefik recipe to play with though. | ||
| + | * If serving locally, eg at radish.local, | ||
| + | ==== Experiment 4: Ensure that an app can get access to the running stacks ==== | ||
| I conducted this by building a dummy recipe which I called spikespy. It had the following config: [[https:// | I conducted this by building a dummy recipe which I called spikespy. It had the following config: [[https:// | ||
| Line 65: | Line 97: | ||
| For example, it works if I do: | For example, it works if I do: | ||
| - | '' | + | < |
| + | docker -H tcp:// | ||
| + | </ | ||
| But, it is configured to not allow docker exec, and so if I do: | But, it is configured to not allow docker exec, and so if I do: | ||
| - | '' | + | < |
| + | docker -H tcp:// | ||
| + | </ | ||
| I get a forbidden error. | I get a forbidden error. | ||
