https://github.com/sjdonado/bit
Fast, lightweight, production-ready, URL shortener powered by SQLite and Crystal
https://github.com/sjdonado/bit
dockerfile kemal self-hosted sqlite3 url-shortener
Last synced: about 1 month ago
JSON representation
Fast, lightweight, production-ready, URL shortener powered by SQLite and Crystal
- Host: GitHub
- URL: https://github.com/sjdonado/bit
- Owner: sjdonado
- License: mit
- Created: 2021-06-13T14:06:03.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2025-04-08T03:08:07.000Z (6 months ago)
- Last Synced: 2025-08-23T23:04:14.706Z (about 2 months ago)
- Topics: dockerfile, kemal, self-hosted, sqlite3, url-shortener
- Language: Crystal
- Homepage: https://hub.docker.com/r/sjdonado/bit
- Size: 8.74 MB
- Stars: 54
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- trackawesomelist - bit (⭐14) - Fast, lightweight, resource-efficient, compiled URL shortener powered by SQLite. `MIT` `Docker/Crystal` (Recently Updated / [Mar 01, 2025](/content/2025/03/01/README.md))
README
[](https://hub.docker.com/r/sjdonado/bit)
[](https://hub.docker.com/r/sjdonado/bit)
[](https://hub.docker.com/r/sjdonado/bit)Lightweight URL shortener (API-only) with minimal resource requirements. Avg memory consumption **30MiB**, avg CPU load 20%.
Highly performant: **7.9k req/sec**, latency 15.8ms (100k requests using 125 connections, [benchmark](docs/SETUP.md#benchmark)).
Self-hosted: [Dokku](docs/SETUP.md#dokku), [Docker Compose](docs/SETUP.md#docker-compose).
Images available on [Docker Hub](https://hub.docker.com/r/sjdonado/bit/tags).
## Why bit?
It is feature-complete by design: simple and reliable without unnecessary bloat. Bug fixes will continue, but new features aren't planned.- Minimal tracking setup: Country, browser, OS, referer. No cookies or persistent tracking mechanisms are used beyond what's available from a basic client's request.
- Includes `X-Forwarded-For` header.
- Multiple users are supported via API key authentication. Users can create, list and delete keys via the [CLI](docs/SETUP.md#cli).
- Easy to extend, Ruby on Rails-inspired setup.## Recommented requirements
- 100MB disk space
- 70MiB RAM
- x86_64 or ARM64## Documentation
- [API Reference](docs/API.md)
- [Setup](docs/SETUP.md)## Contributing
Found an issue or have a suggestion? Please follow our [contribution guidelines](CONTRIBUTING.md).