Satnogs-client-docker on Dragon OS

Good morning,

I installed satnogs-client-docker on Dragon OS.

Currently it seems to work, I’m testing it because it’s fresh.

I would like to activate image: librespace/satnogs-client:lsf-addons, but I have the impression that it is no longer available on the repository.

Is this normal? Can we find it elsewhere? Unless I’m missing some information…

I will look to build the image with the Dockerfile.

73’s F4TNK

Hello,

It’s OK, i builded image from dockerfile and i added to my own local registry

cd satnogs-client-docker
cd addons
docker run -d -p 5000:5000 --restart always --name registry registry:2
docker build -t registry/satnogs-client-docker-addons .

I changed docker-compose.yml with this :

image : registry/satnogs-client-docker-addons:latest
#image: librespace/satnogs-client:master  # LSF stable docker image

73’s from F4TNK

I think it is worth building the images on the host as the one on dockerhub is not automatically updated when packages update etc.
But no, you don’t need a registry, it will simply build to the local docker images. build and buildx both work.
the build.sh in addons is what I use.

Also, there’s some errors in the combination with the repo name, my build are all tagged knegge/.... so librespace/satnogs-client:lsf-addons will not be found as it is not in librespace/.... repo.
You can tag images with multiple names as well.

1 Like

Hello,

Thank you Dani for your help.

You are completely right, in view of the dependencies, this seems more suitable for me.

I just saw the build.sh, I hadn’t seen it…

I installed two stations at the same time with Docker and it works great…it’s very stable. I should go up to 4 soon.

So I look at the code a little more closely on all Satnogs software, in order to be able to experiment with certain things and familiarize myself.

The demodulation part with .grc and flowgraph seems nice to study.

I saw that for StratoSat TK-1, there were decoders available and I am looking at the possibility of integrating other decoders (already done) initially via python. And I also look at how the sending of decodings works…The Kaitai structure seems barbaric to me for the moment :wink:

Moreover, in this regard, I saw that in the Dockerfile of the addons, there were lines commented at the LeanHRPT level. Now, I was looking at how I could integrate HRPT decoding into Satnogs. In fact I can’t find much on this subject and I would like to be able to try to receive some things in L band.

There must certainly be a good reason for deactivating this component…

Can you tell me more about this Dani ?

Thank you in advance

73’s from F4TNK Mélaine

Yes, it states that in the comment, requiring qt5 and some other big libs. I’d recommend looking into the satdump cli instead but it’s a bunch to grasp.
Use the SatDump ui first, try it live or on baseband recordings, then figure out the appropriate output confguration of what to produce, then move/rename it to satnogs data/obs files for upload.

73 de sa2kng

1 Like

Great, thank you very much. I’m going to look at all of this !

Good weekend

F4TNK

1 Like

Hello,

I continue to experiment…

I wanted to put the directives in sat.cfg for bluebird
61046 --disable_dc_block
61049 --disable_dc_block
61045 --disable_dc_block
61048 --disable_dc_block
61047 --disable_dc_block

So I added to the sat.cfg file in the addons part. and build it via build.sh

But when I go to the container and look at the contents of /var/lib/satnogs-client/.gr_satellites I can’t find sat.cfg file.

I first thought of a variable problem because SATNOGS_CLIENT_VARSTATEDIR=/var/lib/satnogs-client

and therefore /target/$SATNOGS_CLIENT_VARSTATEDIR/.gr_satellites/sat.cfg makes /target**//**var/lib/satnogs-client/.gr_satellites/sat.cfg with a double /

But that doesn’t change anything.

I did a find command on the entire container looking for sat.cfg and found nothing…

If i change, satgnos-pre for example, it’s ok in my container.

Buildkit problem ?

Any idea?

73’s from F4TNK

Hello,

In addition to the double / in the path, the copy does not seem to be done because of access to the directory /var/lib/satnogs-client which has a chown to satnogs-client: satnogs-client

If I move the lines to the end of the dockerfile, the COPY --chown directive works and copy files it’s ok now.

COPY --chown=satnogs-client:satnogs-client sat.cfg /target$SATNOGS_CLIENT_VARSTATEDIR/.gr_satellites/sat.cfg
COPY --chown=satnogs-client:satnogs-client satdump_cfg.json /target$SATNOGS_CLIENT_VARSTATEDIR/.config/satdump/satdump_cfg.json

I don’t understand why at the moment

73’s from F4TNK

I’m not really sure why you get those results, I tried building it just now and I can see the sat.cfg in the expected place.

$ cat /var/lib/satnogs-client/.gr_satellites/sat.cfg
35933 --clk_bw 0.3
46276 --clk_bw 0.15

a wildcard copy will not fail iirc, but a specific like COPY sat.cfg .... will fail if that file is not found.

When building, it should end with something like

 => exporting to image                                                                                                                 0.3s
 => => exporting layers                                                                                                                0.3s
 => => writing image sha256:1a85cbb33143af4d28c79e2bd302d96f81b00176ecb957229bafcefe4f94d256                                           0.0s
 => => naming to docker.io/knegge/satnogs-client:lsf-addons

and you need to use the tag shown like knegge/satnogs-client:lsf-addons of what ever you have chosen in the build.sh else you will just use another old image.
For testing, just run docker run --rm -it knegge/satnogs-client:lsf-addons bash and poke around.

1 Like

Hi Dani,

Thanks for the feedback
:slight_smile:

It’s strange indeed.

I use the knegge/satnogs-client:lsf-addons tag which was generated by the build.sh as root

If I make a change elsewhere in the code, it appears in the image.

I have to redo the installation on a mini PC… I will review this point on this occasion. It’s not a big deal, the files arrive at their destination in the end…lol

PS: I will edit the message again later to list some commands that I use just in case… and some info, from the radio pc

73’s from F4TNK

Does it get the “old” sat.cfg or nothing at all ?

One important detail, if you’re running it from the stack, the persistant volume can play tricks on you when files are both in the image and stored in the volume. That’s why I do the poking around with a simple --run

--8<--
    volumes:
      - type: 'volume'
        source: 'satnogs-client'
        target: '/var/lib/satnogs-client'
--8<--
volumes:
  satnogs-client:  # persistent named volume for the station

This is some info from my rpi running station 1864:

$ docker compose version
Docker Compose version v2.24.0-birthday.10

$ docker version
Client:
 Version:           20.10.5+dfsg1
 API version:       1.41
 Go version:        go1.15.15
 Git commit:        55c4c88
 Built:             Mon May 30 18:34:49 2022
 OS/Arch:           linux/arm64
 Context:           default
 Experimental:      true

Server:
 Engine:
  Version:          20.10.5+dfsg1
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.15.15
  Git commit:       363e9a8
  Built:            Mon May 30 18:34:49 2022
  OS/Arch:          linux/arm64
  Experimental:     false
 containerd:
  Version:          1.4.13~ds1
  GitCommit:        1.4.13~ds1-1~deb11u4
 runc:
  Version:          1.0.0~rc93+ds1
  GitCommit:        1.0.0~rc93+ds1-5+deb11u3
 docker-init:
  Version:          0.19.0
  GitCommit:
1 Like

Hello,

That’s right, I wasn’t looking in the right place.

The directory is declared as a persistent volume so the data is on the root disk, not in the container…

Thank you Dani… I had seen that there was a volume, but I didn’t make the link.

So I do a docker volume ls to have the list of volumes, then a docker inspect volume_name to know the exact path on the root disk and it’s ok, there are the files.

Cool and excuse me for my ignorance, because until now, I had never built a docker image…

So now I should be able to manage to do a lot of things.

Well now, I’ll have to improve my decoding, but I’m going to make another post so as not to mix everything up.

Great thanks again Dani.

73’s from F4TNK

Hi,

In addition, I had fun building satnogs-client-docker as much as possible without any dependency with the docker hub… it allows me to be as up to date as possible.

This gives something like this which apparently works well (I did not make the changes to the repositories and registry tags in this example), but I think I’ll script it:

------------- Construction from the different git sources of the satnogs-client-docker image ----------------------

git clone https://gitlab.com/knegge/docker-gnuradio
cd docker-gnuradio
docker build -t registry/gnuradio:3.8.2.0-satnogs .
cd ..
git clone https://gitlab.com/librespacefoundation/satnogs/satnogs-client.git
cd satnogs-client
docker build -t registry/satnogs-client:latest .
cd satnogs-client/addons
cd addons
Add apt install jq in Dockerfile to avoid errors when constructing the image
docker build -t registry/satnogs-client:addons .
cd ..
cd ..
git clone https://github.com/kng/satnogs-client-docker.git
cd satnogs-client-docker
cd addons
export DOCKER_BUILDKIT=1
docker build -t registry/satnogs-client-docker:addons .

Modifiy Docker compose yaml file for station with
satnogs_client: image: registry/satnogs-client-docker:addons
---------------------------------------------------------------------------------------------------------------------------

In the end le docker image ls gives me

REPOSITORY TAG IMAGE ID CREATED SIZE
registry/satnogs-client-docker addons 3960f0a47f07 23 minutes ago 2.49GB
registry/satnogs-client addons 0dc45c85a6c0 55 minutes ago 2.4GB
registry/satnogs-client latest 23d75f607e9e About an hour ago 2.39GB
registry/gnuradio 3.8.2.0-satnogs 2dd60c009748 About an hour ago 2.18GB
librespace/hamlib latest 01f8619574c9 7 months ago 136MB
registry 2 75ef5b734af4 12 months ago 25.4MB

PS: the JQ dependency for the Dockerfile of the satnogs-client addons is missing for me

73’s F4TNK

Regarding the volume, the fastest way to manage sat.cfg and other specific configs that is in the homedir is to just edit them in the volume instead of rebuilding. Just pop in to a shell in the stack and cat > sat.cfg , paste the contents and Ctrl-D to save.

I need to have a look at the build when the sun is up… I do note that there’s a bunch of building that doesn’t need to be done and some repos that aren’t maintained.

1 Like