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 themain
branch{major}.{minor}
: latest build for a given minor version{major}.{minor}.{release}
: latest build for a given version