construct
construct copied to clipboard
[Document question] Where is construct user data located?
I'm building a docker image for construct. But I don't know where does construct store its data?
The docker image should be stateless, so I need to create a volume for the directories containing stateful data to make them persistent. such as /var/db/construct.
Do you have any link for the work on the docker image, @recolic? I'd like to include construct in automated CI/CD integration tests of another Matrix project in order to ensure compatibility. As this is only one of four homeserver implementations tested in the pipeline, it would be far out of scope to build construct from source.
Hi @TheOneWithTheBraid ,
This directory contains a build script, and a docker container to build & run construct. https://git.recolic.net/root/construct-docker/-/tree/master/build This repo is mostly abandoned, so you might need to do some testing...
Docker images are available here: https://registry.hub.docker.com/r/jevolk/construct/tags. I'm uploading another image with a fully built snapshot of construct right now, so it might not appear there quite yet. I'll be updating that each tagged release.
Construct stores its data in directories configurable at both compile-time and runtime. For building, check out ./configure --help tuning of installation directories. At runtime, directories can be changed with environment variables. The database directory can be set with $STATE_DIRECTORY or $IRCD_DB_DIR or $ircd_fs_base_db which are all the same thing. The default is probably /var/db/construct/. Any other directories are listed alongside in https://github.com/jevolk/charybdis/blob/master/ircd/fs_path.cc
Thanks a lot @jevolk!
Could you maybe provide some more documentation on the docker image?
I'd like to have a no-interaction deployment in our integration tests. Is there any way for it? Can I somehow declaratively deploy a very minimal configuration?
You can get around interactive configuration (such as the instructions to type net listen ... at console) by using e.g. -execute "net listen ..." as program options to ./construct. Each console command gets its own -execute. I guess this needs to be footnoted somewhere...