Hades is an open source Buf compatible schema registry.
docker compose -f development/docker-compose-dev.yaml up -d
go run ./cmd/hades/. serve --config config/dev.yamlFor development purposes you need to follow these steps:
Add example.com to hosts
sudo sh -c 'echo "127.0.0.1 example.com" >> /etc/hosts'Allow the app to run on port 443
echo "net.ipv4.ip_unprivileged_port_start=0" | sudo tee -a /etc/sysctl.conf
sudo sysctl -pThe Buf CLI expects the app to run on port 443 with TLS enabled. Set up TLS certificates: Install mkcert for self-signed certificates Generate certificates by running:
mkcert -install
cd config && mkcert example.com && cd ..Copy the sample config file and fill it with proper configs.
cp config/config.sample.yaml config/dev.yamlYou also need to do the migrations:
make migrate-upAnd run the application
go run ./cmd/hades/. serve --config config/dev.yamlcd into development folder
./install_tools.sh
./init.sh- Creates a user: googleapis / googleapis
- Creates a module: googleapis with sample protos
- Sets up a project in protos/simpleproject that depends on the googleapis module
I coded this fast, focusing on getting things working first rather than following the best practices from day one. So there’s room for improvement, refactoring, and optimizations.
If you spot something that could be improved, better architecture, cleaner code, or best practices, feel free to open an issue or a PR. Your contributions are highly appreciated!
Enjoy hacking on Hades!
- buf dep update
- buf push
Navigate to
development/protos/simpleprojectand run:
buf dep update # Updates the googleapis dependency
buf generate # Generates codeNOTE: the SKD module is not yet developed.
You can also change the protos in development/protos/googleapis and then push them using buf push
This project includes files from Google APIs for development purposes, which are licensed under the Apache License 2.0. See the LICENSE file in development/protos/googleapis for details.
docker run -v ./config/config.yaml:/app/config/config.yaml DOCKER_IMAGE:TAGMount TLS certificates and adjust ports/configs according to config/config.yaml.