Files

1.7 KiB

ushort

ushort is a compact, self-contained URL shortener written in Rust and backed by SQLite. It serves an embedded web interface and JSON API from a single statically linked executable.

It supports deployment at either a dedicated host such as s.example.com or under a path such as example.com/s. Images are available for Linux AMD64 and ARM64.

Quick start

Requirements: Docker with the Compose plugin.

cp config.example.toml config.toml
# Set a private api_key in config.toml.

mkdir -p data
USHORT_CONFIG="$PWD/config.toml" \
USHORT_DATA="$PWD/data" \
USHORT_UID="$(id -u)" \
USHORT_GID="$(id -g)" \
  docker compose -f deploy/docker-compose.prod.yml up -d

The example starts ushort at http://localhost:18082/s/ and stores its SQLite database in ./data/urlshort.db.

Check it and stop it with:

curl http://localhost:18082/s/api/health
docker compose -f deploy/docker-compose.prod.yml down

This pulls the published image; it does not compile ushort or require a Rust toolchain.

Build from source instead

To build the current checkout locally, use the alternative build definition:

mkdir -p data
USHORT_UID="$(id -u)" USHORT_GID="$(id -g)" \
  docker compose -f deploy/docker-compose.build.yml up --build -d

It uses the same root-level config.toml and data/ directory as the quick start.

Documentation