▀▀█             ▀
  ▄ ▄▄   ▄▄▄     █    ▄   ▄  ▄▄▄
  █▀  ▀ █▀  █    █    █   █    █
  █     █▀▀▀▀    █    █   █    █
  █     ▀█▄▄▀    ▀▄▄  ▀▄▄▀█  ▄▄█▄▄

relui is a web interface for managing the release process of Go.


Run the command with the appropriate libpq-style environment variables set.

PGHOST=localhost PGDATABASE=relui-dev PGUSER=postgres go run . -listen-http=localhost:8080

Alternatively, using docker:

make dev

Updating Queries

Create or edit SQL files in internal/relui/queries. After editing the query, run sqlc generate in this directory. The internal/relui/db package contains the generated code.

See sqlc documentation for further details.

Creating & Running Database Migrations

Migrations are managed using github.com/golang-migrate/migrate.


go run -tags pgx github.com/golang-migrate/migrate/v4/cmd/migrate \
  create \
  --dir ../../internal/relui/migrations/ \
  -ext sql \
# alternatively, install the migrate command with pgx support.


Migrations are automatically ran on application launch. “Down” migrations are not automatically run and must be manually invoked in psql, or by the --migrate-down-up flag or make migrate-down-up.


Run go test with the appropriate libpq-style environment variables set. If the database connection fails, database integration tests will be skipped. If PGDATABASE is unset, relui-test is created, migrated, and used by default.

PGHOST=localhost PGUSER=postgres go test -v ./... ../../internal/relui/...

Alternatively, using docker:

make test


See the documentation on deployment.

JS/CSS formatting and lint

This project uses eslint and stylelint to format JavaScript and CSS files.

To run:

npm run lint

Alternatively, using Docker:

make lint