├── .dockerignore ├── .editorconfig ├── .env.development ├── .env.test ├── .github └── workflows │ ├── deploy-docs.yml │ ├── publish.yml │ ├── tests.yml │ └── update-parsers.yml ├── .gitignore ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Dockerfile ├── LICENSE ├── README.md ├── app ├── config │ ├── env.cr │ └── kemal.cr ├── controllers │ ├── click.cr │ ├── link.cr │ └── ping.cr ├── lib │ ├── controller.cr │ ├── database.cr │ ├── errors.cr │ ├── ip_lookup.cr │ └── ua_parser.cr ├── middlewares │ ├── auth.cr │ └── cors.cr ├── models │ ├── click.cr │ ├── link.cr │ └── user.cr ├── routes.cr ├── serializers │ ├── click.cr │ └── link.cr └── services │ ├── cli.cr │ └── slug.cr ├── bit.cr ├── data ├── GeoLite2-Country.mmdb └── uap_core_regexes.yaml ├── db ├── migrations │ ├── 20240512214223_create_links.sql │ ├── 20240512225208_add_slug_index_to_links.sql │ ├── 20240513115731_create_users.sql │ ├── 20240513130054_add_api_key_index_to_users.sql │ ├── 20240711224103_create_clicks.sql │ ├── 20240714215409_update_slug_size_links.sql │ ├── 20250316102350_add_country_to_clicks.sql │ ├── 20250316111734_replace_unkwown_with_null.sql │ ├── 20250318072657_replace_slug_index_with_covering_index.sql │ └── 20250319192003_convert_all_tables_text_ids_to_integer.sql └── seed.sql ├── docker-compose.yml ├── docs ├── SETUP.md └── openapi.yaml ├── scripts ├── benchmark.cr └── cli.cr ├── shard.lock ├── shard.yml ├── spec ├── integration │ ├── link_spec.cr │ └── ping_spec.cr ├── services │ └── cli_spec.cr └── spec_helper.cr └── sqlite └── .keep /.dockerignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/.dockerignore -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/.editorconfig -------------------------------------------------------------------------------- /.env.development: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/.env.development -------------------------------------------------------------------------------- /.env.test: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/.env.test -------------------------------------------------------------------------------- /.github/workflows/deploy-docs.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/.github/workflows/deploy-docs.yml -------------------------------------------------------------------------------- /.github/workflows/publish.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/.github/workflows/publish.yml -------------------------------------------------------------------------------- /.github/workflows/tests.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/.github/workflows/tests.yml -------------------------------------------------------------------------------- /.github/workflows/update-parsers.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/.github/workflows/update-parsers.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/.gitignore -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/CODE_OF_CONDUCT.md -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/Dockerfile -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/README.md -------------------------------------------------------------------------------- /app/config/env.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/app/config/env.cr -------------------------------------------------------------------------------- /app/config/kemal.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/app/config/kemal.cr -------------------------------------------------------------------------------- /app/controllers/click.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/app/controllers/click.cr -------------------------------------------------------------------------------- /app/controllers/link.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/app/controllers/link.cr -------------------------------------------------------------------------------- /app/controllers/ping.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/app/controllers/ping.cr -------------------------------------------------------------------------------- /app/lib/controller.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/app/lib/controller.cr -------------------------------------------------------------------------------- /app/lib/database.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/app/lib/database.cr -------------------------------------------------------------------------------- /app/lib/errors.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/app/lib/errors.cr -------------------------------------------------------------------------------- /app/lib/ip_lookup.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/app/lib/ip_lookup.cr -------------------------------------------------------------------------------- /app/lib/ua_parser.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/app/lib/ua_parser.cr -------------------------------------------------------------------------------- /app/middlewares/auth.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/app/middlewares/auth.cr -------------------------------------------------------------------------------- /app/middlewares/cors.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/app/middlewares/cors.cr -------------------------------------------------------------------------------- /app/models/click.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/app/models/click.cr -------------------------------------------------------------------------------- /app/models/link.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/app/models/link.cr -------------------------------------------------------------------------------- /app/models/user.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/app/models/user.cr -------------------------------------------------------------------------------- /app/routes.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/app/routes.cr -------------------------------------------------------------------------------- /app/serializers/click.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/app/serializers/click.cr -------------------------------------------------------------------------------- /app/serializers/link.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/app/serializers/link.cr -------------------------------------------------------------------------------- /app/services/cli.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/app/services/cli.cr -------------------------------------------------------------------------------- /app/services/slug.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/app/services/slug.cr -------------------------------------------------------------------------------- /bit.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/bit.cr -------------------------------------------------------------------------------- /data/GeoLite2-Country.mmdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/data/GeoLite2-Country.mmdb -------------------------------------------------------------------------------- /data/uap_core_regexes.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/data/uap_core_regexes.yaml -------------------------------------------------------------------------------- /db/migrations/20240512214223_create_links.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/db/migrations/20240512214223_create_links.sql -------------------------------------------------------------------------------- /db/migrations/20240512225208_add_slug_index_to_links.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/db/migrations/20240512225208_add_slug_index_to_links.sql -------------------------------------------------------------------------------- /db/migrations/20240513115731_create_users.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/db/migrations/20240513115731_create_users.sql -------------------------------------------------------------------------------- /db/migrations/20240513130054_add_api_key_index_to_users.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/db/migrations/20240513130054_add_api_key_index_to_users.sql -------------------------------------------------------------------------------- /db/migrations/20240711224103_create_clicks.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/db/migrations/20240711224103_create_clicks.sql -------------------------------------------------------------------------------- /db/migrations/20240714215409_update_slug_size_links.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/db/migrations/20240714215409_update_slug_size_links.sql -------------------------------------------------------------------------------- /db/migrations/20250316102350_add_country_to_clicks.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/db/migrations/20250316102350_add_country_to_clicks.sql -------------------------------------------------------------------------------- /db/migrations/20250316111734_replace_unkwown_with_null.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/db/migrations/20250316111734_replace_unkwown_with_null.sql -------------------------------------------------------------------------------- /db/migrations/20250318072657_replace_slug_index_with_covering_index.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/db/migrations/20250318072657_replace_slug_index_with_covering_index.sql -------------------------------------------------------------------------------- /db/migrations/20250319192003_convert_all_tables_text_ids_to_integer.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/db/migrations/20250319192003_convert_all_tables_text_ids_to_integer.sql -------------------------------------------------------------------------------- /db/seed.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/db/seed.sql -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/docker-compose.yml -------------------------------------------------------------------------------- /docs/SETUP.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/docs/SETUP.md -------------------------------------------------------------------------------- /docs/openapi.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/docs/openapi.yaml -------------------------------------------------------------------------------- /scripts/benchmark.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/scripts/benchmark.cr -------------------------------------------------------------------------------- /scripts/cli.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/scripts/cli.cr -------------------------------------------------------------------------------- /shard.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/shard.lock -------------------------------------------------------------------------------- /shard.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/shard.yml -------------------------------------------------------------------------------- /spec/integration/link_spec.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/spec/integration/link_spec.cr -------------------------------------------------------------------------------- /spec/integration/ping_spec.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/spec/integration/ping_spec.cr -------------------------------------------------------------------------------- /spec/services/cli_spec.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/spec/services/cli_spec.cr -------------------------------------------------------------------------------- /spec/spec_helper.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjdonado/bit/HEAD/spec/spec_helper.cr -------------------------------------------------------------------------------- /sqlite/.keep: -------------------------------------------------------------------------------- 1 | --------------------------------------------------------------------------------