Galacteek on Cloudron
-
Galacteek makes IPFS (Inter Planetary File System) easy. Its tools help you blog, run a Gemini, use IPNS (Inter Planetary Naming System) for content which is updated often, archive and much more.
https://galacteek.gitlab.io/download/#v052
There is a Docker:
https://galacteek.gitlab.io/running-a-node/The user interface runs in a password protected, x11vnc service. IPFS is best run in some sort of container, such as Cloudron. (Pinning files effectively publishes one's IP address.)
-
@loudlemur @micmc Hello, galacteek author here. Recently learned about Cloudron, nice project !
The docker image for galacteek is about 1Gb and that's a bit much, trying to find ways to reduce that to a minimum. If you have ideas on how to improve the docker image i'm quite interested, i'm not sure the x11vnc thing is ideal but it's worked better for me than the trick with the X11 socket.
-
@cipres I am not sure specifically, but there are some tips about reducing the number of layers, using a smaller base image size (Alpine) and a dockerignore file might help:
https://learnk8s.io/blog/smaller-docker-images
https://phoenixnap.com/kb/docker-image-size
https://www.ianlewis.org/en/creating-smaller-docker-imagesIt is great you are here, @cipres ! Please give this amazing developer a big welcome, Cloudron!
-
Welcome @cipres !
dapps is so cool! I am an ex-Qt developer, btw. I wrote among other things Qt style sheets, QCompleter, QLabel etc Good to see QML going strong -
-
@girish Thank you ! Cool, 2011 talk, i'll watch it.
Yeah i think writing dapps in QML has some potential (or it could be a complete dead-end :D), i wrote the necessary interfaces so that from the QML code you can use IPFS functions like pubsub, to broadcast messages efficiently to all the peers. Also it integrates with QtWebEngine so you can load a JS-based ipfs page from your dapp ..
Most people working with ipfs write dapps in NodeJS, it's the classic approach. Ideally we could mix both ... but QML won't let you do async so i write the complex code in python and call that from the QML side.
-
-
Some documentation on how to use SparQL and IPFS from a QML dapp
-
New shapshots and docker image. Now when you search for things on the dweb it's automatically cached as RDF so it's way faster to lookup things later on even being offline.
There's also a bash script now to run the latest AppImage snapshot automatically:
curl -L https://galacteek.gitlab.io/galacteek-snapshot-install.sh | bash
-
@LoudLemur I've read the packaging tutorial, i can write and publish the CloudronManifest.json file in the galacteek repo if that helps. It seems that the docker image url/ref is not specified in the manifest but rather that you need to pass it when you run "cloudron install --image ..." ?
-
@cipres
Yes you need :- CloudronManifest.json ( can be simple )
- Dockerfile
- source code
Then :
docker build -t <reponame>/<appname>:<tag> .
docker push <reponame>/<appname>:<tag>
cloudron install --image <reponame>/<appname>:<tag>
-
@timconsidine Thank you ! The docker image is already automatically built from gitlab ci and pushed to gitlab's container registry here:
registry.gitlab.com/galacteek/galacteek:pimp-my-dweb-latest-x11vnc
So apart from the manifest there isn't much else that needs to be done it seems ?
-
@cipres generally nothing else needed BUT I think the Dockerfile may need to be custom to Cloudron. Depends on how complex the Dockerfile is.
-
Generally advised to use latest base build
FROM cloudron/base:3.2.0@sha256:ba1d566164a67c266782545ea9809dc611c4152e27686fd14060332dd88263ea
Although I am not entirely sure about whether this is essential. -
May need to consider passing some Cloudron-specific variables for DB connection etc.
-
Generally Cloudron deployments are 'static' in terms of system code under
/app/code
and changeable config and data under/app/data
. But again not sure if this is essential.
Someone with more technical knowledge and better packaging experience may be able to explain / advise better than me.
-
-
@timconsidine Thanks a lot for your help.The Dockerfile is pretty simple. I don't want to have to maintain 2 different docker images.
Given that the password to access the UI via VNC is printed on the console when the container is started, won't be that be a problem when running it from cloudron ?