Splitgraph has been acquired by EDB! Read the blog post.

Installation

You can download a Seafowl binary for your architecture from our releases page.

Default settings

Seafowl uses sane defaults, meaning you will be able to get started using Seafowl without any extra configuration:

./seafowl

The settings are:

  • Store the catalog locally, in ./seafowl-data/seafowl.sqlite
  • Store the data locally in ./seafowl-data
  • HTTP API enabled, listening on 127.0.0.1:8080
  • HTTP API readable (SELECT queries) without authentication
  • HTTP API writeable (INSERT, CREATE TABLE etc queries) with a bearer token and a random password (see the Seafowl logs for the password)
  • PostgreSQL endpoint disabled
  • No garbage collection of orphan partitions

Configuring Seafowl

Seafowl will look for a seafowl.toml configuration file in the current working directory. You can also run Seafowl with -c path-to-file to specify a different configuration file.

If there's no seafowl.toml configuration file present in the current directory or on the commandline, Seafowl will write out a default seafowl.toml file on first execution. See the configuration reference for more information.

Docker images

We also provide pre-built Docker images with Seafowl. These are configured for:

  • Local storage for the catalog and the data in /seafowl-data
  • HTTP API enabled, listening on 127.0.0.1:8080
  • HTTP API read-only

You can use environment variables like SEAFOWL__FRONTEND__HTTP__WRITE_ACCESS=any to configure the container. See the configuration reference for more information.

Example: local Docker

docker run --rm -p 8080:8080 \
    -e SEAFOWL__FRONTEND__HTTP__WRITE_ACCESS=any \
    splitgraph/seafowl:nightly

Example: Fly.io

If you're a Fly.io user, you can use the Fly CLI to start an instance of Seafowl:

fly launch --image splitgraph/seafowl:nightly --now

Add a volume:

fly volumes create seafowl_data --region lhr --size 1

Mount the volume to Seafowl by editing fly.toml and adding:

[mounts]
  source="seafowl_data"
  destination="/seafowl-data"

Generate a write password to make the instance writeable and redeploy:

pw=$(< /dev/urandom LC_ALL=C tr -dc A-Za-z0-9 | head -c${1:-32};echo -n)
pw_hash=$(echo -n $pw | sha256sum - | head -c 64)
echo -e "Password: $pw"
export YOUR_PASSWORD=$pw

fly secrets set "SEAFOWL__FRONTEND__HTTP__WRITE_ACCESS=$pw_hash"

Tags

We publish Seafowl images with the following tags:

  • nightly: latest build from the main branch
  • {major}.{minor}: latest build for a given minor version
  • {major}.{minor}.{release}: latest build for a given version