Well, that’s why I linked that discussion about NFS, I’m guessing NFS is an option, either with syno or other devices, if your old syno supports NFS couldn’t you mount it on your new syno using NFS (it seems docker supports it too)…?..
I am using NFS (network filesharing protocol) to mount it. but i believe the data created by the node is stored in BTRFS filesystem format.
So the data is transferred over NFS to the other synology. However, that other synology does not recognise BTRFS fileformat. At least that is what I am assuming right now. Or are you saying the fileformat is created on the node side and only storage is used in the other syno (meaning it shouldn’t matter what is being stored)?
If so, it might be a different issue, but in summary the package works if i do not use mounting via NFS. If I do mount via NFS, I get the errors as described above.
first:
after first start:
error running server function: Docker server error: Cannot update container f69889d4a50f9ce6358e353aab55408cfba5af2b2aeec0dc6c0edc91b4a67c2b: cannot update a stopped container: unknown
after trying to restart:
error running server function: Docker server error: failed to create task for container: failed to start shim: mkdir /data/exec/containerd/daemon/io.containerd.runtime.v2.task/moby/f69889d4a50f9ce6358e353aab55408cfba5af2b2aeec0dc6c0edc91b4a67c2b: file exists: unknown
If it’s using NFS the data should be readable from anywhere using that protocol I believe, unless there is something you are not configuring correctly to expose it as NFS, or perhaps permissions are not set up correctly so it can read and write. But if both systems, new and old, support NFS then any program like docker should be able to write and read to/from it I’d guess, obviously within the limitations imposed by NFS whatever they maybe. Perhaps the docker-compose.yml needs to be changed so it’s specified that the volume is an NFS, not sure.
You can also test with some other basic docker app using that volume mounted with NFS and see if it has issues, or just any (non docker) app which reads/write to the NFS drive.
Yes, I already checked that I can read/write to the other filestation. in fact, when you docker-compose, it writes folders and data to the other station so it seems that is working. But for some reason it fails after the creation of the node (so once you start it up)
Check that discussion about docker with NFS volumes, perhaps docker needs to know this is an NFS volume, in that thread they show some opts they put in the docker-compose.yml, e.g.:
...
services:
example-app:
volumes:
- "nfs-data:/data"
...
volumes:
nfs-data:
driver: local
driver_opts:
type: nfs
o: nfsvers=4,addr=nfs.example.com,rw
device: ":/path/to/dir"
...
Edit: also check the permissions, the user and group IDs used by the docker compared to the ones used to mount the NFS volume, NFS versions on both sides, NFS uses file locking mechanisms, and if there are issues with locks (e.g., stale locks), it may prevent modifications, etc., from what I’m reading it seems there could be a few scenarios that these type of things end up causing issues with writing and/or modifying files through NFS.
Thx! Will have a look into that.
Btw, the upgrade is coming, what is the best way to upgrade?
Docker-compose down deletes the nodes right?
No, it doesn’t, look at the readme, docker compose down, then pull, and up again. But that’s to upgrade formicaio, to upgrade nodes you don’t need to do that, you should have a green button in the gui, unless your nodes already are latest version.
This is interesting - I seem to have one more relevant record than total records…
other than that, Formicaio seems to JustWork
Thanks @bochaco
I’ve never seen that, perhaps something new and related to pruning changes I believe were introduced, no idea, those numbers come straight from the metrics server exposed by the nodes, I don’t know if one number is supposed to include the other one or they are disjoint
I never looked closely before but now I see that any other node that has quoted a store price has Records == Relevant
…that’s something that I’m quite sure wasn’t before, I used to have very few “relevant” compared to “records” number.
I saw that when i started new nodes and someone got a quote. It too was in the 1200’s
Now there is only 200 odd relevant records a couple of hours later
This is just with my normal script to monitor nodes so doubt its anything to do with Formicaio
I got Umbrel to run on my VPS using Docker. I can see my nodes on my mac web browser which are running in the VPS.
https://hub.docker.com/r/dockurr/umbrel
nano ~/umbrel/docker-compose.yml
version: ‘3’
services:
umbrel:
image: dockurr/umbrel
container_name: umbrel
ports:
- “80:80”
volumes:
- ./data:/data
- /var/run/docker.sock:/var/run/docker.sock
restart: unless-stopped
sudo docker-compose up -d
sudo docker ps
Access umbrel http://
So, i tried to adjust the docker-compose file but unfortunately not very good at it.
I tried to run it, but when i check the container volumes, they aren’t created.
I guess it has to do with my code to add the volume, which is:
- nfs-data:/docker/data
in the original docker compose file it is
- ./docker_volumes/docker:/data
so i’m assuming it has to do with docker:/data. I tried
- nfs-data:/docker:/data
but it errors out if I do it like that (and i’m not sure why it is written as docker:/data in the first place.
any idea on what i’m doing wrong?
full file:
services:
docker:
image: docker:27.2.0-dind@sha256:f9f72ad901a78f27be922b2d320bbc263174f12919c1b37e6a01f828fa904565
privileged: true
network_mode: host
stop_grace_period: 1m
environment:
DOCKER_ENSURE_BRIDGE: “dind0:10.32.0.1/16”
entrypoint: /entrypoint.sh
command: >
dockerd
–bridge dind0
–data-root /data/data
–exec-root /data/exec
–host unix:///data/docker.sock
–pidfile /data/docker.pid
volumes:
- ./entrypoint.sh:/entrypoint.sh
- nfs-data:/docker/dataformicaio:
image: bochaco/formicaio:latest
depends_on:
- docker
stop_grace_period: 5s
ports:
- “52100:8080”
environment:
NODE_CONTAINER_IMAGE_TAG: latest
DOCKER_SOCKET_PATH: /var/run/docker.sock
DB_PATH: /data
volumes:
- nfs-data:/formicaio/data
- nfs-data:/docker/var/runvolumes:
nfs-data:
driver: local
driver_opts:
type: nfs
o: nfsvers=3,addr=,rw
device: “:/volume1/Downloads”
Formicaio isn’t functioning for me since I did the last update.
Node I had running gone and can’t add any more.
What’s up?
If you are not seeing the node/s you had before the upgrade, then you’re likely having connectivity issue with the backend, i.e. between the GUI and the app running on umbrel. Try reopening it from the umbrel’s homepage and also try Ctrl+F5 and see if that reloads the GUI and is able connect to the backend. You can also check the browser’s console with F12 and see if any error is logged there to get a clue.
If nothing works, simplest thing to try is uninstall it and reinstall it again.
Edit: you can also double check Formicaio is running, from umbrel’s homepage, right-click to see if it can be started/stopped.
Restarting from the right-click drop down on the Home page finally did it. It didn’t connect with simple reinstall and open, but I’m happy for the coaching. Lost the node I had running on reinstall, but no big deal.
Thanks.
Background on Formicaio
Formicaio is an application, which can be run on Linux (amd64/arm64) using Docker Compose. While it is not officially published in the UmbrelOS app store, you can still integrate it by using community methods or Docker Compose directly.
Comprehensive Steps and Troubleshooting:
-
Review Your NFS Configuration:
- Ensure the NFS server is properly set up and accessible from the Docker host. Confirm that
:/volume1/Downloads
is a valid export path, and the NFS server’s IP is correctly specified indriver_opts
.
- Ensure the NFS server is properly set up and accessible from the Docker host. Confirm that
-
Adjust Your Docker Compose File:
- To include Formicaio alongside your existing Docker services (e.g., Umbrel), modify the
docker-compose.yml
as follows:services: formicaio: image: bochaco/formicaio:latest depends_on: - umbrel ports: - "52100:8080" volumes: - nfs-data:/formicaio/data - /var/run/docker.sock:/var/run/docker.sock environment: NODE_CONTAINER_IMAGE_TAG: latest DOCKER_SOCKET_PATH: /var/run/docker.sock DB_PATH: /data stop_grace_period: 5s volumes: nfs-data: driver: local driver_opts: type: nfs o: nfsvers=3,addr=<NFS_SERVER_IP>,rw device: ":/volume1/Downloads"
- To include Formicaio alongside your existing Docker services (e.g., Umbrel), modify the
-
Ensure Permissions Are Set Correctly:
- Verify that the Docker process has read and write permissions to the NFS-mounted directory:
sudo mount -t nfs <NFS_SERVER_IP>:/volume1/Downloads /mnt/test touch /mnt/test/test-file
- Verify that the Docker process has read and write permissions to the NFS-mounted directory:
-
Clone and Run Formicaio:
- To set up Formicaio specifically:
git clone https://github.com/bochaco/formicaio cd formicaio/deploy/local docker compose up -d
- This will pull the required images and start the services. You can access Formicaio from your browser at:
http://<your-vps-ip>:52100
- To set up Formicaio specifically:
-
Accessing UmbrelOS and Formicaio:
- UmbrelOS can be accessed on its configured port (e.g.,
http://<your-vps-ip>
). - Formicaio can be accessed via
http://<your-vps-ip>:52100
.
- UmbrelOS can be accessed on its configured port (e.g.,
Clarifying Questions for Further Troubleshooting:
-
Is the NFS Server Accessible from the Docker Host?
- Have you tested the NFS server’s accessibility by manually mounting it on the Docker host? Use:
sudo mount -t nfs <NFS_SERVER_IP>:/volume1/Downloads /mnt/test
- If this test fails, you may need to adjust network configurations or NFS export settings.
- Have you tested the NFS server’s accessibility by manually mounting it on the Docker host? Use:
-
Do You Face Any Permission Issues with the Mounted Directory?
- Check if you can write to the mounted directory with:
touch /mnt/test/test-file
- If permissions are denied, modify your NFS server’s export file and client permissions to allow read/write access.
- Check if you can write to the mounted directory with:
-
What Errors Appear When Running
docker-compose up
?- If there are issues starting the container, use:
withoutsudo docker-compose up
-d
to see real-time logs. This helps pinpoint where failures occur.
- If there are issues starting the container, use:
-
Can You Run Formicaio on UmbrelOS Directly?
- Though Formicaio isn’t officially on the Umbrel app store, you can add it through the community app store by linking to its GitHub repository:
https://github.com/bochaco/formicaio-app-store
- Though Formicaio isn’t officially on the Umbrel app store, you can add it through the community app store by linking to its GitHub repository:
Final Troubleshooting Tips:
- Check the container logs using:
docker compose logs -f
- Update containers when needed:
docker compose pull docker compose down docker compose up -d
These steps should guide you through setting up Formicaio on UmbrelOS and resolving potential volume mount issues. Let me know if you need further help or run into any specific errors during the process!
I only half know what I’m doing. Try this and answer the questions. I’ll feed them into my GPT thread which allowed me to get it running on my system. Just reply, with any questions and as much info as you can and we’ll get this running. It works amazingly well.
You might just try to get Umbrel running first and then add formicaio from the community app store. Let me know if you want to go this route. This is what I did.