diff --git a/hack/crawl/README.md b/api/internal/crawl/README.md similarity index 100% rename from hack/crawl/README.md rename to api/internal/crawl/README.md diff --git a/hack/crawl/ROADMAP.md b/api/internal/crawl/ROADMAP.md similarity index 100% rename from hack/crawl/ROADMAP.md rename to api/internal/crawl/ROADMAP.md diff --git a/hack/crawl/backend/search_backend.go b/api/internal/crawl/backend/search_backend.go similarity index 100% rename from hack/crawl/backend/search_backend.go rename to api/internal/crawl/backend/search_backend.go diff --git a/hack/crawl/cmd/backend/Dockerfile b/api/internal/crawl/cmd/backend/Dockerfile similarity index 100% rename from hack/crawl/cmd/backend/Dockerfile rename to api/internal/crawl/cmd/backend/Dockerfile diff --git a/hack/crawl/cmd/backend/main.go b/api/internal/crawl/cmd/backend/main.go similarity index 100% rename from hack/crawl/cmd/backend/main.go rename to api/internal/crawl/cmd/backend/main.go diff --git a/hack/crawl/config/base/kustomization.yaml b/api/internal/crawl/config/base/kustomization.yaml similarity index 100% rename from hack/crawl/config/base/kustomization.yaml rename to api/internal/crawl/config/base/kustomization.yaml diff --git a/hack/crawl/config/crawler/base/kustomization.yaml b/api/internal/crawl/config/crawler/base/kustomization.yaml similarity index 100% rename from hack/crawl/config/crawler/base/kustomization.yaml rename to api/internal/crawl/config/crawler/base/kustomization.yaml diff --git a/hack/crawl/config/crawler/cronjob/cronjob.yaml b/api/internal/crawl/config/crawler/cronjob/cronjob.yaml similarity index 100% rename from hack/crawl/config/crawler/cronjob/cronjob.yaml rename to api/internal/crawl/config/crawler/cronjob/cronjob.yaml diff --git a/hack/crawl/config/crawler/cronjob/kustomization.yaml b/api/internal/crawl/config/crawler/cronjob/kustomization.yaml similarity index 100% rename from hack/crawl/config/crawler/cronjob/kustomization.yaml rename to api/internal/crawl/config/crawler/cronjob/kustomization.yaml diff --git a/hack/crawl/config/crawler/job/job.yaml b/api/internal/crawl/config/crawler/job/job.yaml similarity index 100% rename from hack/crawl/config/crawler/job/job.yaml rename to api/internal/crawl/config/crawler/job/job.yaml diff --git a/hack/crawl/config/crawler/job/kustomization.yaml b/api/internal/crawl/config/crawler/job/kustomization.yaml similarity index 100% rename from hack/crawl/config/crawler/job/kustomization.yaml rename to api/internal/crawl/config/crawler/job/kustomization.yaml diff --git a/hack/crawl/config/redis/document_keystore/kustomization.yaml b/api/internal/crawl/config/redis/document_keystore/kustomization.yaml similarity index 100% rename from hack/crawl/config/redis/document_keystore/kustomization.yaml rename to api/internal/crawl/config/redis/document_keystore/kustomization.yaml diff --git a/hack/crawl/config/redis/document_keystore/redis.yaml b/api/internal/crawl/config/redis/document_keystore/redis.yaml similarity index 100% rename from hack/crawl/config/redis/document_keystore/redis.yaml rename to api/internal/crawl/config/redis/document_keystore/redis.yaml diff --git a/hack/crawl/config/redis/document_keystore/service.yaml b/api/internal/crawl/config/redis/document_keystore/service.yaml similarity index 100% rename from hack/crawl/config/redis/document_keystore/service.yaml rename to api/internal/crawl/config/redis/document_keystore/service.yaml diff --git a/hack/crawl/config/redis/http_cache/kustomization.yaml b/api/internal/crawl/config/redis/http_cache/kustomization.yaml similarity index 100% rename from hack/crawl/config/redis/http_cache/kustomization.yaml rename to api/internal/crawl/config/redis/http_cache/kustomization.yaml diff --git a/hack/crawl/config/redis/http_cache/redis.yaml b/api/internal/crawl/config/redis/http_cache/redis.yaml similarity index 100% rename from hack/crawl/config/redis/http_cache/redis.yaml rename to api/internal/crawl/config/redis/http_cache/redis.yaml diff --git a/hack/crawl/config/redis/http_cache/service.yaml b/api/internal/crawl/config/redis/http_cache/service.yaml similarity index 100% rename from hack/crawl/config/redis/http_cache/service.yaml rename to api/internal/crawl/config/redis/http_cache/service.yaml diff --git a/hack/crawl/config/webapp/backend/deployment.yaml b/api/internal/crawl/config/webapp/backend/deployment.yaml similarity index 100% rename from hack/crawl/config/webapp/backend/deployment.yaml rename to api/internal/crawl/config/webapp/backend/deployment.yaml diff --git a/hack/crawl/config/webapp/backend/kustomization.yaml b/api/internal/crawl/config/webapp/backend/kustomization.yaml similarity index 100% rename from hack/crawl/config/webapp/backend/kustomization.yaml rename to api/internal/crawl/config/webapp/backend/kustomization.yaml diff --git a/hack/crawl/config/webapp/backend/service.yaml b/api/internal/crawl/config/webapp/backend/service.yaml similarity index 100% rename from hack/crawl/config/webapp/backend/service.yaml rename to api/internal/crawl/config/webapp/backend/service.yaml diff --git a/hack/crawl/config/webapp/frontend/deployment.yaml b/api/internal/crawl/config/webapp/frontend/deployment.yaml similarity index 100% rename from hack/crawl/config/webapp/frontend/deployment.yaml rename to api/internal/crawl/config/webapp/frontend/deployment.yaml diff --git a/hack/crawl/config/webapp/frontend/kustomization.yaml b/api/internal/crawl/config/webapp/frontend/kustomization.yaml similarity index 100% rename from hack/crawl/config/webapp/frontend/kustomization.yaml rename to api/internal/crawl/config/webapp/frontend/kustomization.yaml diff --git a/hack/crawl/config/webapp/frontend/service.yaml b/api/internal/crawl/config/webapp/frontend/service.yaml similarity index 100% rename from hack/crawl/config/webapp/frontend/service.yaml rename to api/internal/crawl/config/webapp/frontend/service.yaml diff --git a/hack/crawl/crawler/crawler.go b/api/internal/crawl/crawler/crawler.go similarity index 100% rename from hack/crawl/crawler/crawler.go rename to api/internal/crawl/crawler/crawler.go diff --git a/hack/crawl/crawler/crawler_test.go b/api/internal/crawl/crawler/crawler_test.go similarity index 100% rename from hack/crawl/crawler/crawler_test.go rename to api/internal/crawl/crawler/crawler_test.go diff --git a/hack/crawl/crawler/git/cloner.go b/api/internal/crawl/crawler/git/cloner.go similarity index 100% rename from hack/crawl/crawler/git/cloner.go rename to api/internal/crawl/crawler/git/cloner.go diff --git a/hack/crawl/crawler/git/repospec.go b/api/internal/crawl/crawler/git/repospec.go similarity index 100% rename from hack/crawl/crawler/git/repospec.go rename to api/internal/crawl/crawler/git/repospec.go diff --git a/hack/crawl/crawler/git/repospec_test.go b/api/internal/crawl/crawler/git/repospec_test.go similarity index 100% rename from hack/crawl/crawler/git/repospec_test.go rename to api/internal/crawl/crawler/git/repospec_test.go diff --git a/hack/crawl/crawler/github/crawler.go b/api/internal/crawl/crawler/github/crawler.go similarity index 100% rename from hack/crawl/crawler/github/crawler.go rename to api/internal/crawl/crawler/github/crawler.go diff --git a/hack/crawl/crawler/github/queries.go b/api/internal/crawl/crawler/github/queries.go similarity index 100% rename from hack/crawl/crawler/github/queries.go rename to api/internal/crawl/crawler/github/queries.go diff --git a/hack/crawl/crawler/github/queries_test.go b/api/internal/crawl/crawler/github/queries_test.go similarity index 100% rename from hack/crawl/crawler/github/queries_test.go rename to api/internal/crawl/crawler/github/queries_test.go diff --git a/hack/crawl/crawler/github/split_search_ranges.go b/api/internal/crawl/crawler/github/split_search_ranges.go similarity index 100% rename from hack/crawl/crawler/github/split_search_ranges.go rename to api/internal/crawl/crawler/github/split_search_ranges.go diff --git a/hack/crawl/crawler/github/split_search_ranges_test.go b/api/internal/crawl/crawler/github/split_search_ranges_test.go similarity index 100% rename from hack/crawl/crawler/github/split_search_ranges_test.go rename to api/internal/crawl/crawler/github/split_search_ranges_test.go diff --git a/hack/crawl/doc/doc.go b/api/internal/crawl/doc/doc.go similarity index 100% rename from hack/crawl/doc/doc.go rename to api/internal/crawl/doc/doc.go diff --git a/hack/crawl/doc/doc_test.go b/api/internal/crawl/doc/doc_test.go similarity index 100% rename from hack/crawl/doc/doc_test.go rename to api/internal/crawl/doc/doc_test.go diff --git a/hack/crawl/doc/docname.go b/api/internal/crawl/doc/docname.go similarity index 100% rename from hack/crawl/doc/docname.go rename to api/internal/crawl/doc/docname.go diff --git a/hack/crawl/doc/docname_test.go b/api/internal/crawl/doc/docname_test.go similarity index 100% rename from hack/crawl/doc/docname_test.go rename to api/internal/crawl/doc/docname_test.go diff --git a/hack/crawl/doc/kustomize_util.go b/api/internal/crawl/doc/kustomize_util.go similarity index 100% rename from hack/crawl/doc/kustomize_util.go rename to api/internal/crawl/doc/kustomize_util.go diff --git a/hack/crawl/go.mod b/api/internal/crawl/go.mod similarity index 100% rename from hack/crawl/go.mod rename to api/internal/crawl/go.mod diff --git a/hack/crawl/go.sum b/api/internal/crawl/go.sum similarity index 100% rename from hack/crawl/go.sum rename to api/internal/crawl/go.sum diff --git a/hack/crawl/httpclient/httpclient.go b/api/internal/crawl/httpclient/httpclient.go similarity index 100% rename from hack/crawl/httpclient/httpclient.go rename to api/internal/crawl/httpclient/httpclient.go diff --git a/hack/crawl/index/elasticsearch.go b/api/internal/crawl/index/elasticsearch.go similarity index 100% rename from hack/crawl/index/elasticsearch.go rename to api/internal/crawl/index/elasticsearch.go diff --git a/hack/crawl/index/kustomize.go b/api/internal/crawl/index/kustomize.go similarity index 100% rename from hack/crawl/index/kustomize.go rename to api/internal/crawl/index/kustomize.go diff --git a/hack/crawl/index/kustomize_test.go b/api/internal/crawl/index/kustomize_test.go similarity index 100% rename from hack/crawl/index/kustomize_test.go rename to api/internal/crawl/index/kustomize_test.go diff --git a/hack/crawl/pictures/github_token.png b/api/internal/crawl/pictures/github_token.png similarity index 100% rename from hack/crawl/pictures/github_token.png rename to api/internal/crawl/pictures/github_token.png diff --git a/hack/crawl/pictures/sys_arch.png b/api/internal/crawl/pictures/sys_arch.png similarity index 100% rename from hack/crawl/pictures/sys_arch.png rename to api/internal/crawl/pictures/sys_arch.png diff --git a/hack/crawl/pictures/token_config.png b/api/internal/crawl/pictures/token_config.png similarity index 100% rename from hack/crawl/pictures/token_config.png rename to api/internal/crawl/pictures/token_config.png diff --git a/hack/crawl/ui/.dockerignore b/api/internal/crawl/ui/.dockerignore similarity index 100% rename from hack/crawl/ui/.dockerignore rename to api/internal/crawl/ui/.dockerignore diff --git a/hack/crawl/ui/.gcloudignore b/api/internal/crawl/ui/.gcloudignore similarity index 100% rename from hack/crawl/ui/.gcloudignore rename to api/internal/crawl/ui/.gcloudignore diff --git a/hack/crawl/ui/.gitignore b/api/internal/crawl/ui/.gitignore similarity index 100% rename from hack/crawl/ui/.gitignore rename to api/internal/crawl/ui/.gitignore diff --git a/hack/crawl/ui/Dockerfile b/api/internal/crawl/ui/Dockerfile similarity index 100% rename from hack/crawl/ui/Dockerfile rename to api/internal/crawl/ui/Dockerfile diff --git a/hack/crawl/ui/README.md b/api/internal/crawl/ui/README.md similarity index 100% rename from hack/crawl/ui/README.md rename to api/internal/crawl/ui/README.md diff --git a/hack/crawl/ui/angular.json b/api/internal/crawl/ui/angular.json similarity index 100% rename from hack/crawl/ui/angular.json rename to api/internal/crawl/ui/angular.json diff --git a/hack/crawl/ui/browserslist b/api/internal/crawl/ui/browserslist similarity index 100% rename from hack/crawl/ui/browserslist rename to api/internal/crawl/ui/browserslist diff --git a/hack/crawl/ui/cloudbuild.yaml b/api/internal/crawl/ui/cloudbuild.yaml similarity index 100% rename from hack/crawl/ui/cloudbuild.yaml rename to api/internal/crawl/ui/cloudbuild.yaml diff --git a/hack/crawl/ui/e2e/protractor.conf.js b/api/internal/crawl/ui/e2e/protractor.conf.js similarity index 100% rename from hack/crawl/ui/e2e/protractor.conf.js rename to api/internal/crawl/ui/e2e/protractor.conf.js diff --git a/hack/crawl/ui/e2e/src/app.e2e-spec.ts b/api/internal/crawl/ui/e2e/src/app.e2e-spec.ts similarity index 100% rename from hack/crawl/ui/e2e/src/app.e2e-spec.ts rename to api/internal/crawl/ui/e2e/src/app.e2e-spec.ts diff --git a/hack/crawl/ui/e2e/src/app.po.ts b/api/internal/crawl/ui/e2e/src/app.po.ts similarity index 100% rename from hack/crawl/ui/e2e/src/app.po.ts rename to api/internal/crawl/ui/e2e/src/app.po.ts diff --git a/hack/crawl/ui/e2e/tsconfig.json b/api/internal/crawl/ui/e2e/tsconfig.json similarity index 100% rename from hack/crawl/ui/e2e/tsconfig.json rename to api/internal/crawl/ui/e2e/tsconfig.json diff --git a/hack/crawl/ui/karma.conf.js b/api/internal/crawl/ui/karma.conf.js similarity index 100% rename from hack/crawl/ui/karma.conf.js rename to api/internal/crawl/ui/karma.conf.js diff --git a/hack/crawl/ui/nginx.conf b/api/internal/crawl/ui/nginx.conf similarity index 100% rename from hack/crawl/ui/nginx.conf rename to api/internal/crawl/ui/nginx.conf diff --git a/hack/crawl/ui/package-lock.json b/api/internal/crawl/ui/package-lock.json similarity index 100% rename from hack/crawl/ui/package-lock.json rename to api/internal/crawl/ui/package-lock.json diff --git a/hack/crawl/ui/package.json b/api/internal/crawl/ui/package.json similarity index 100% rename from hack/crawl/ui/package.json rename to api/internal/crawl/ui/package.json diff --git a/hack/crawl/ui/src/app/app.component.css b/api/internal/crawl/ui/src/app/app.component.css similarity index 100% rename from hack/crawl/ui/src/app/app.component.css rename to api/internal/crawl/ui/src/app/app.component.css diff --git a/hack/crawl/ui/src/app/app.component.html b/api/internal/crawl/ui/src/app/app.component.html similarity index 100% rename from hack/crawl/ui/src/app/app.component.html rename to api/internal/crawl/ui/src/app/app.component.html diff --git a/hack/crawl/ui/src/app/app.component.spec.ts b/api/internal/crawl/ui/src/app/app.component.spec.ts similarity index 100% rename from hack/crawl/ui/src/app/app.component.spec.ts rename to api/internal/crawl/ui/src/app/app.component.spec.ts diff --git a/hack/crawl/ui/src/app/app.component.ts b/api/internal/crawl/ui/src/app/app.component.ts similarity index 100% rename from hack/crawl/ui/src/app/app.component.ts rename to api/internal/crawl/ui/src/app/app.component.ts diff --git a/hack/crawl/ui/src/app/app.module.ts b/api/internal/crawl/ui/src/app/app.module.ts similarity index 100% rename from hack/crawl/ui/src/app/app.module.ts rename to api/internal/crawl/ui/src/app/app.module.ts diff --git a/hack/crawl/ui/src/app/documents.ts b/api/internal/crawl/ui/src/app/documents.ts similarity index 100% rename from hack/crawl/ui/src/app/documents.ts rename to api/internal/crawl/ui/src/app/documents.ts diff --git a/hack/crawl/ui/src/app/histogram/histogram.component.css b/api/internal/crawl/ui/src/app/histogram/histogram.component.css similarity index 100% rename from hack/crawl/ui/src/app/histogram/histogram.component.css rename to api/internal/crawl/ui/src/app/histogram/histogram.component.css diff --git a/hack/crawl/ui/src/app/histogram/histogram.component.html b/api/internal/crawl/ui/src/app/histogram/histogram.component.html similarity index 100% rename from hack/crawl/ui/src/app/histogram/histogram.component.html rename to api/internal/crawl/ui/src/app/histogram/histogram.component.html diff --git a/hack/crawl/ui/src/app/histogram/histogram.component.spec.ts b/api/internal/crawl/ui/src/app/histogram/histogram.component.spec.ts similarity index 100% rename from hack/crawl/ui/src/app/histogram/histogram.component.spec.ts rename to api/internal/crawl/ui/src/app/histogram/histogram.component.spec.ts diff --git a/hack/crawl/ui/src/app/histogram/histogram.component.ts b/api/internal/crawl/ui/src/app/histogram/histogram.component.ts similarity index 100% rename from hack/crawl/ui/src/app/histogram/histogram.component.ts rename to api/internal/crawl/ui/src/app/histogram/histogram.component.ts diff --git a/hack/crawl/ui/src/app/search/search.component.css b/api/internal/crawl/ui/src/app/search/search.component.css similarity index 100% rename from hack/crawl/ui/src/app/search/search.component.css rename to api/internal/crawl/ui/src/app/search/search.component.css diff --git a/hack/crawl/ui/src/app/search/search.component.html b/api/internal/crawl/ui/src/app/search/search.component.html similarity index 100% rename from hack/crawl/ui/src/app/search/search.component.html rename to api/internal/crawl/ui/src/app/search/search.component.html diff --git a/hack/crawl/ui/src/app/search/search.component.spec.ts b/api/internal/crawl/ui/src/app/search/search.component.spec.ts similarity index 100% rename from hack/crawl/ui/src/app/search/search.component.spec.ts rename to api/internal/crawl/ui/src/app/search/search.component.spec.ts diff --git a/hack/crawl/ui/src/app/search/search.component.ts b/api/internal/crawl/ui/src/app/search/search.component.ts similarity index 100% rename from hack/crawl/ui/src/app/search/search.component.ts rename to api/internal/crawl/ui/src/app/search/search.component.ts diff --git a/hack/crawl/ui/src/app/search/search.service.ts b/api/internal/crawl/ui/src/app/search/search.service.ts similarity index 100% rename from hack/crawl/ui/src/app/search/search.service.ts rename to api/internal/crawl/ui/src/app/search/search.service.ts diff --git a/hack/crawl/ui/src/app/timeseries/timeseries.component.css b/api/internal/crawl/ui/src/app/timeseries/timeseries.component.css similarity index 100% rename from hack/crawl/ui/src/app/timeseries/timeseries.component.css rename to api/internal/crawl/ui/src/app/timeseries/timeseries.component.css diff --git a/hack/crawl/ui/src/app/timeseries/timeseries.component.html b/api/internal/crawl/ui/src/app/timeseries/timeseries.component.html similarity index 100% rename from hack/crawl/ui/src/app/timeseries/timeseries.component.html rename to api/internal/crawl/ui/src/app/timeseries/timeseries.component.html diff --git a/hack/crawl/ui/src/app/timeseries/timeseries.component.spec.ts b/api/internal/crawl/ui/src/app/timeseries/timeseries.component.spec.ts similarity index 100% rename from hack/crawl/ui/src/app/timeseries/timeseries.component.spec.ts rename to api/internal/crawl/ui/src/app/timeseries/timeseries.component.spec.ts diff --git a/hack/crawl/ui/src/app/timeseries/timeseries.component.ts b/api/internal/crawl/ui/src/app/timeseries/timeseries.component.ts similarity index 100% rename from hack/crawl/ui/src/app/timeseries/timeseries.component.ts rename to api/internal/crawl/ui/src/app/timeseries/timeseries.component.ts diff --git a/hack/crawl/ui/src/assets/.gitkeep b/api/internal/crawl/ui/src/assets/.gitkeep similarity index 100% rename from hack/crawl/ui/src/assets/.gitkeep rename to api/internal/crawl/ui/src/assets/.gitkeep diff --git a/hack/crawl/ui/src/environments/environment.prod.ts b/api/internal/crawl/ui/src/environments/environment.prod.ts similarity index 100% rename from hack/crawl/ui/src/environments/environment.prod.ts rename to api/internal/crawl/ui/src/environments/environment.prod.ts diff --git a/hack/crawl/ui/src/environments/environment.ts b/api/internal/crawl/ui/src/environments/environment.ts similarity index 100% rename from hack/crawl/ui/src/environments/environment.ts rename to api/internal/crawl/ui/src/environments/environment.ts diff --git a/hack/crawl/ui/src/favicon.ico b/api/internal/crawl/ui/src/favicon.ico similarity index 100% rename from hack/crawl/ui/src/favicon.ico rename to api/internal/crawl/ui/src/favicon.ico diff --git a/hack/crawl/ui/src/index.html b/api/internal/crawl/ui/src/index.html similarity index 100% rename from hack/crawl/ui/src/index.html rename to api/internal/crawl/ui/src/index.html diff --git a/hack/crawl/ui/src/main.ts b/api/internal/crawl/ui/src/main.ts similarity index 100% rename from hack/crawl/ui/src/main.ts rename to api/internal/crawl/ui/src/main.ts diff --git a/hack/crawl/ui/src/polyfills.ts b/api/internal/crawl/ui/src/polyfills.ts similarity index 100% rename from hack/crawl/ui/src/polyfills.ts rename to api/internal/crawl/ui/src/polyfills.ts diff --git a/hack/crawl/ui/src/styles.css b/api/internal/crawl/ui/src/styles.css similarity index 100% rename from hack/crawl/ui/src/styles.css rename to api/internal/crawl/ui/src/styles.css diff --git a/hack/crawl/ui/src/test.ts b/api/internal/crawl/ui/src/test.ts similarity index 100% rename from hack/crawl/ui/src/test.ts rename to api/internal/crawl/ui/src/test.ts diff --git a/hack/crawl/ui/tsconfig.app.json b/api/internal/crawl/ui/tsconfig.app.json similarity index 100% rename from hack/crawl/ui/tsconfig.app.json rename to api/internal/crawl/ui/tsconfig.app.json diff --git a/hack/crawl/ui/tsconfig.json b/api/internal/crawl/ui/tsconfig.json similarity index 100% rename from hack/crawl/ui/tsconfig.json rename to api/internal/crawl/ui/tsconfig.json diff --git a/hack/crawl/ui/tsconfig.spec.json b/api/internal/crawl/ui/tsconfig.spec.json similarity index 100% rename from hack/crawl/ui/tsconfig.spec.json rename to api/internal/crawl/ui/tsconfig.spec.json diff --git a/hack/crawl/ui/tslint.json b/api/internal/crawl/ui/tslint.json similarity index 100% rename from hack/crawl/ui/tslint.json rename to api/internal/crawl/ui/tslint.json