Clarification on a few components needed
-
Hi,
I am currently working through the community download server, stash and github to pull together kopano components, compiling them from source. Doing so I have come across a few packages / repositories where I am not clear on:
- what they are used for
- how to compile them
- how / where on the filesystem I am supposed to deploy (aka. install) them
The packages in question below. I’d appreciate it a lot if someone can please jump in and answer questions 1 - 3 for them individually, please.
- grapi (kopano stash): this looks like a python module to me, but does it require the actual API server software called “grapi” as well to function?
- kpop (git): has a Makefile and creates an “es” folder with yarn. That’s about all I have found out so far. :(
- libkcoidc (git): looks to me like a library. Is this one needed for kopano-server (at buildtime) so that the server works correctly with konnect? I know that this is build with go but where do the compiled files need to be so kopano-server and others can pick them up?
Grapi and libkcoidc in particular seem to be important in combination with konnect, especially when considering that I also want to run kopano meet.
Thank you for reading,
irrelephant -
Hi @irreleph4nt ,
grapi is the groupware backend for kapi. Its executed through the mfr script, the readme specifies this as ´python3 grapi-mfr.py´. Its not really relevant where it is installed to.
kpop is a library which is used within the new clients such as Kopano Meet. Since I am not a web developer this is all I can unfortunately say about it.
libkcoidc is a built time dependency (as you already stated) its required so that kopano-server can validate the oidc tokens issued by konnect.
-
Hi @fbartels,
Thank you for jumping in!
Regarding grapi I am still not quite clear to be honest. Is the actual grapi software needed for this to work? Kopano-grapi is supposed to provide some sockets for other tools so when or how often do I need to run the python mfr script? Manually every time the physical server is restarted? Why is there no service file for this similar to the other tools you provide? Still a lot of questions, sorry. :(Okay, so kpop is more important than I thought. Is there someone that can help me understand where it needs to be deployed?
Thank you,
irreleph4nt -
All source repos should have some reasonable README.md which explains what the repo contains. I have not checked if its really the case but at least some information should be there.
@irreleph4nt said in Clarification on a few components needed:
The packages in question below. I’d appreciate it a lot if someone can please jump in and answer questions 1 - 3 for them individually, please.
grapi (kopano stash): this looks like a python module to me, but does it require the actual API server software called “grapi” as well to function?
This is the grapi service (forked out from kopancore) which is to be used by kapi via its
grapi
plugin. The separate grapi repository is still wip but future releases of grapi will be from this repository. In general grapi provides a service and is to be started by systemd. The service provides sockets which are consumed by kapi via its corresponding plugin to provide Kopano Groupware REST API endpoints.kpop (git): has a Makefile and creates an “es” folder with yarn. That’s about all I have found out so far. :(
Kpop is a shared component library for our new web clients like Kopano Meet. It is used as build dependency via Yarn like other Javascript projects.
libkcoidc (git): looks to me like a library. Is this one needed for kopano-server (at buildtime) so that the server works correctly
with konnect? I know that this is build with go but where do the compiled files need to be so kopano-server and others can pick them up?Libkcoid is a libary implementing Kopano relevent client parts for OpenID Connect. It provides interface for C, Go and Python. It is used by all Kopano services which interact or validate OpenID Connect tokens as a compile time depdency (simetimes optional, like for kopancore).
Generally for all our projects, there is a Makefile to build stuff from source. the projects README should contain information about build dependencies and further instructions if required.