#component #server #registry #postgresql #warg #registries #in-memory

dev bin+lib warg-server

A server library for Warg component registries

14 releases (9 breaking)

0.9.2 Nov 20, 2024
0.9.0 Sep 4, 2024
0.7.0 May 16, 2024
0.5.0-dev Mar 7, 2024
0.0.0 Jan 31, 2023

#580 in Database interfaces

Download history 76/week @ 2024-10-09 60/week @ 2024-10-16 187/week @ 2024-10-23 22/week @ 2024-10-30 16/week @ 2024-11-06 75/week @ 2024-11-13 166/week @ 2024-11-20 37/week @ 2024-11-27 71/week @ 2024-12-04 49/week @ 2024-12-11 18/week @ 2024-12-18 6/week @ 2024-12-25 21/week @ 2025-01-01 29/week @ 2025-01-08 7/week @ 2025-01-15 13/week @ 2025-01-22

70 downloads per month
Used in 4 crates

Apache-2.0 WITH LLVM-exception

450KB
11K SLoC

Warg Registry Server

⚠️ This is prototype quality code at this time. ⚠️

Running the server

The registry server can be started with either in-memory or PostgreSQL storage.

In-memory storage

With in-memory storage, the server will store all data in-memory and the data will be lost when the server is stopped.

To start the server, provide the WARG_OPERATOR_KEY environment variable, which is used to sign the entries in the server's operator log:

Also, provide the WARG_NAMESPACE environment variable to define the initial namespace for package publishing.

$ WARG_NAMESPACE=example WARG_OPERATOR_KEY="ecdsa-p256:I+UlDo0HxyBBFeelhPPWmD+LnklOpqZDkrFP5VduASk=" cargo run -- --content-dir content
2023-04-18T23:48:52.149746Z  INFO warg_server::services::core: initializing core service
2023-04-18T23:48:52.170199Z  INFO warg_server::services::core: core service is running
2023-04-18T23:48:52.170233Z  INFO warg_server: listening on 0.0.0.0:8090

PostgreSQL storage

With PostgreSQL storage, the server will store all data in a PostgreSQL database.

Support for PostgreSQL storage is behind the postgres compilation feature flag.

The easiest way to start a PostgreSQL server is with Docker:

docker run -d --name postgres -e POSTGRES_PASSWORD=password -v /tmp/data:/var/lib/postgresql/data -p 5432:5432 postgres

With the above command, data will be stored in /tmp/data on the host machine.

To set up the database, install diesel-cli:

cargo install diesel_cli

And run the setup with:

diesel database setup --database-url postgres://postgres:password@localhost/registry

Here, registry is the database name that will be created.

To start the registry server, provide both the WARG_OPERATOR_KEY and WARG_DATABASE_URL environment variables:

WARG_NAMESPACE=example WARG_DATABASE_URL=postgres://postgres:password@localhost/registry WARG_OPERATOR_KEY="ecdsa-p256:I+UlDo0HxyBBFeelhPPWmD+LnklOpqZDkrFP5VduASk=" cargo run -p warg-server --features postgres -- --content-dir content --data-store postgres

The --data-store postgres flag starts the server with PostgreSQL data storage.

The server may now be restarted and will continue to use the same database.

Dependencies

~21–36MB
~586K SLoC