├── .dockerignore ├── .github └── workflows │ └── tests.yml ├── .gitignore ├── .travis.yml ├── Dockerfile ├── FUNDING.yml ├── LICENSE ├── Makefile ├── README.md ├── TODO.md ├── client └── client.go ├── cmd ├── migrate.go ├── role.go ├── root.go ├── serve.go ├── top.go ├── torrent.go ├── updategeo.go ├── user.go └── whitelist.go ├── config ├── config.go └── config_test.go ├── consts ├── errors.go ├── protocol.go └── version.go ├── dev.docker-compose.yml ├── docker-compose.yml ├── docker.sh ├── docker ├── dev.Dockerfile ├── docker_init.sh ├── mysql_init.sql └── test.Dockerfile ├── docs ├── CHEATERS.md ├── CONFIG.md ├── DESIGN_GOALS.md ├── IMPLEMENTING.md ├── STORE_HTTP.md ├── STORE_REDIS.md ├── STORE_SQL.md └── STORE_TESTS.md ├── examples └── data │ ├── archive.tar.gz │ ├── demo_torrent_data.torrent │ └── demo_torrent_data │ └── lena.jpg ├── geo ├── archive.go ├── geo.go └── geo_test.go ├── go.mod ├── go.sum ├── main.go ├── metrics ├── metrics.go └── metrics_test.go ├── mika.yaml.dist ├── proto ├── common.pb.go ├── common.proto ├── config.pb.go ├── config.proto ├── mika.pb.go ├── mika.proto ├── mika_grpc.pb.go ├── role.pb.go ├── role.proto ├── tracker.pb.go ├── tracker.proto ├── user.pb.go └── user.proto ├── rpc ├── config.go ├── role.go ├── status.go ├── torrents.go └── users.go ├── setup.py ├── setup.sh ├── store ├── interface.go ├── memory │ ├── memory.go │ └── memory_test.go ├── mysql │ ├── drop.sql │ ├── mysql.go │ ├── mysql_test.go │ └── schema.sql ├── peer.go ├── peer_test.go ├── postgres │ ├── postgres.go │ ├── postgres_test.go │ └── schema.sql ├── redis │ ├── redis.go │ └── redis_test.go ├── store_bench_test.go ├── store_tests.go ├── torrent.go ├── torrent_test.go └── user.go ├── test.docker-compose.yml ├── tracker ├── announce.go ├── announce_test.go ├── doc.go ├── http.go ├── query.go ├── query_test.go ├── role.go ├── scrape.go ├── scrape_test.go ├── tracker.go ├── tracker_test.go └── user.go └── util ├── conv.go ├── conv_test.go ├── math.go ├── math_test.go ├── network.go ├── network_test.go ├── os.go ├── os_test.go ├── string.go └── string_test.go /.dockerignore: -------------------------------------------------------------------------------- 1 | *.CSV 2 | *.BIN 3 | .idea 4 | vendor 5 | geo_data 6 | -------------------------------------------------------------------------------- /.github/workflows/tests.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/.github/workflows/tests.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/.gitignore -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/.travis.yml -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/Dockerfile -------------------------------------------------------------------------------- /FUNDING.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/FUNDING.yml -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/README.md -------------------------------------------------------------------------------- /TODO.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/TODO.md -------------------------------------------------------------------------------- /client/client.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/client/client.go -------------------------------------------------------------------------------- /cmd/migrate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/cmd/migrate.go -------------------------------------------------------------------------------- /cmd/role.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/cmd/role.go -------------------------------------------------------------------------------- /cmd/root.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/cmd/root.go -------------------------------------------------------------------------------- /cmd/serve.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/cmd/serve.go -------------------------------------------------------------------------------- /cmd/top.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/cmd/top.go -------------------------------------------------------------------------------- /cmd/torrent.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/cmd/torrent.go -------------------------------------------------------------------------------- /cmd/updategeo.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/cmd/updategeo.go -------------------------------------------------------------------------------- /cmd/user.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/cmd/user.go -------------------------------------------------------------------------------- /cmd/whitelist.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/cmd/whitelist.go -------------------------------------------------------------------------------- /config/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/config/config.go -------------------------------------------------------------------------------- /config/config_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/config/config_test.go -------------------------------------------------------------------------------- /consts/errors.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/consts/errors.go -------------------------------------------------------------------------------- /consts/protocol.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/consts/protocol.go -------------------------------------------------------------------------------- /consts/version.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/consts/version.go -------------------------------------------------------------------------------- /dev.docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/dev.docker-compose.yml -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/docker-compose.yml -------------------------------------------------------------------------------- /docker.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/docker.sh -------------------------------------------------------------------------------- /docker/dev.Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/docker/dev.Dockerfile -------------------------------------------------------------------------------- /docker/docker_init.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/docker/docker_init.sh -------------------------------------------------------------------------------- /docker/mysql_init.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/docker/mysql_init.sql -------------------------------------------------------------------------------- /docker/test.Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/docker/test.Dockerfile -------------------------------------------------------------------------------- /docs/CHEATERS.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/docs/CHEATERS.md -------------------------------------------------------------------------------- /docs/CONFIG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/docs/CONFIG.md -------------------------------------------------------------------------------- /docs/DESIGN_GOALS.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/docs/DESIGN_GOALS.md -------------------------------------------------------------------------------- /docs/IMPLEMENTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/docs/IMPLEMENTING.md -------------------------------------------------------------------------------- /docs/STORE_HTTP.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/docs/STORE_HTTP.md -------------------------------------------------------------------------------- /docs/STORE_REDIS.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/docs/STORE_REDIS.md -------------------------------------------------------------------------------- /docs/STORE_SQL.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/docs/STORE_SQL.md -------------------------------------------------------------------------------- /docs/STORE_TESTS.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/docs/STORE_TESTS.md -------------------------------------------------------------------------------- /examples/data/archive.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/examples/data/archive.tar.gz -------------------------------------------------------------------------------- /examples/data/demo_torrent_data.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/examples/data/demo_torrent_data.torrent -------------------------------------------------------------------------------- /examples/data/demo_torrent_data/lena.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/examples/data/demo_torrent_data/lena.jpg -------------------------------------------------------------------------------- /geo/archive.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/geo/archive.go -------------------------------------------------------------------------------- /geo/geo.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/geo/geo.go -------------------------------------------------------------------------------- /geo/geo_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/geo/geo_test.go -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/go.mod -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/go.sum -------------------------------------------------------------------------------- /main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/main.go -------------------------------------------------------------------------------- /metrics/metrics.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/metrics/metrics.go -------------------------------------------------------------------------------- /metrics/metrics_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/metrics/metrics_test.go -------------------------------------------------------------------------------- /mika.yaml.dist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/mika.yaml.dist -------------------------------------------------------------------------------- /proto/common.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/proto/common.pb.go -------------------------------------------------------------------------------- /proto/common.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/proto/common.proto -------------------------------------------------------------------------------- /proto/config.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/proto/config.pb.go -------------------------------------------------------------------------------- /proto/config.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/proto/config.proto -------------------------------------------------------------------------------- /proto/mika.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/proto/mika.pb.go -------------------------------------------------------------------------------- /proto/mika.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/proto/mika.proto -------------------------------------------------------------------------------- /proto/mika_grpc.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/proto/mika_grpc.pb.go -------------------------------------------------------------------------------- /proto/role.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/proto/role.pb.go -------------------------------------------------------------------------------- /proto/role.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/proto/role.proto -------------------------------------------------------------------------------- /proto/tracker.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/proto/tracker.pb.go -------------------------------------------------------------------------------- /proto/tracker.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/proto/tracker.proto -------------------------------------------------------------------------------- /proto/user.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/proto/user.pb.go -------------------------------------------------------------------------------- /proto/user.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/proto/user.proto -------------------------------------------------------------------------------- /rpc/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/rpc/config.go -------------------------------------------------------------------------------- /rpc/role.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/rpc/role.go -------------------------------------------------------------------------------- /rpc/status.go: -------------------------------------------------------------------------------- 1 | package rpc 2 | -------------------------------------------------------------------------------- /rpc/torrents.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/rpc/torrents.go -------------------------------------------------------------------------------- /rpc/users.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/rpc/users.go -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/setup.py -------------------------------------------------------------------------------- /setup.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/setup.sh -------------------------------------------------------------------------------- /store/interface.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/store/interface.go -------------------------------------------------------------------------------- /store/memory/memory.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/store/memory/memory.go -------------------------------------------------------------------------------- /store/memory/memory_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/store/memory/memory_test.go -------------------------------------------------------------------------------- /store/mysql/drop.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/store/mysql/drop.sql -------------------------------------------------------------------------------- /store/mysql/mysql.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/store/mysql/mysql.go -------------------------------------------------------------------------------- /store/mysql/mysql_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/store/mysql/mysql_test.go -------------------------------------------------------------------------------- /store/mysql/schema.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/store/mysql/schema.sql -------------------------------------------------------------------------------- /store/peer.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/store/peer.go -------------------------------------------------------------------------------- /store/peer_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/store/peer_test.go -------------------------------------------------------------------------------- /store/postgres/postgres.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/store/postgres/postgres.go -------------------------------------------------------------------------------- /store/postgres/postgres_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/store/postgres/postgres_test.go -------------------------------------------------------------------------------- /store/postgres/schema.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/store/postgres/schema.sql -------------------------------------------------------------------------------- /store/redis/redis.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/store/redis/redis.go -------------------------------------------------------------------------------- /store/redis/redis_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/store/redis/redis_test.go -------------------------------------------------------------------------------- /store/store_bench_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/store/store_bench_test.go -------------------------------------------------------------------------------- /store/store_tests.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/store/store_tests.go -------------------------------------------------------------------------------- /store/torrent.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/store/torrent.go -------------------------------------------------------------------------------- /store/torrent_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/store/torrent_test.go -------------------------------------------------------------------------------- /store/user.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/store/user.go -------------------------------------------------------------------------------- /test.docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/test.docker-compose.yml -------------------------------------------------------------------------------- /tracker/announce.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/tracker/announce.go -------------------------------------------------------------------------------- /tracker/announce_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/tracker/announce_test.go -------------------------------------------------------------------------------- /tracker/doc.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/tracker/doc.go -------------------------------------------------------------------------------- /tracker/http.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/tracker/http.go -------------------------------------------------------------------------------- /tracker/query.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/tracker/query.go -------------------------------------------------------------------------------- /tracker/query_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/tracker/query_test.go -------------------------------------------------------------------------------- /tracker/role.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/tracker/role.go -------------------------------------------------------------------------------- /tracker/scrape.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/tracker/scrape.go -------------------------------------------------------------------------------- /tracker/scrape_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/tracker/scrape_test.go -------------------------------------------------------------------------------- /tracker/tracker.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/tracker/tracker.go -------------------------------------------------------------------------------- /tracker/tracker_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/tracker/tracker_test.go -------------------------------------------------------------------------------- /tracker/user.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/tracker/user.go -------------------------------------------------------------------------------- /util/conv.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/util/conv.go -------------------------------------------------------------------------------- /util/conv_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/util/conv_test.go -------------------------------------------------------------------------------- /util/math.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/util/math.go -------------------------------------------------------------------------------- /util/math_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/util/math_test.go -------------------------------------------------------------------------------- /util/network.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/util/network.go -------------------------------------------------------------------------------- /util/network_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/util/network_test.go -------------------------------------------------------------------------------- /util/os.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/util/os.go -------------------------------------------------------------------------------- /util/os_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/util/os_test.go -------------------------------------------------------------------------------- /util/string.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/util/string.go -------------------------------------------------------------------------------- /util/string_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leighmacdonald/mika/HEAD/util/string_test.go --------------------------------------------------------------------------------