All Projects β†’ denoland β†’ deno_registry2

denoland / deno_registry2

Licence: MIT license
The backend for the deno.land/x service

Programming Languages

typescript
32286 projects
HCL
1544 projects

Labels

Projects that are alternatives of or similar to deno registry2

compress
compress and uncompress for Deno
Stars: ✭ 29 (-63.29%)
Mutual labels:  deno
kyuko
Fast and easy http framework for Deno Deploy πŸ¦•
Stars: ✭ 18 (-77.22%)
Mutual labels:  deno
node2deno
Deno for Node.js developers
Stars: ✭ 19 (-75.95%)
Mutual labels:  deno
Deno-news-cli
A deno based CLI app to show quick news at your terminal
Stars: ✭ 18 (-77.22%)
Mutual labels:  deno
deno math
Deno module for high-precision calculations and scientific computing
Stars: ✭ 21 (-73.42%)
Mutual labels:  deno
deno-mongo-api
Example for building REST APIS with deno and MongoDB
Stars: ✭ 17 (-78.48%)
Mutual labels:  deno
shell
A very lightweight framework for building shell/CLI applications. Works in Node.js, Deno, and the browser.
Stars: ✭ 63 (-20.25%)
Mutual labels:  deno
dataStructure
Implement different Data Structures using TypeScript and JavaScript. Deno Third-party Module.
Stars: ✭ 24 (-69.62%)
Mutual labels:  deno
AloeDB
Light, Embeddable, NoSQL database for Deno πŸ¦•
Stars: ✭ 111 (+40.51%)
Mutual labels:  deno
cotton
SQL Database Toolkit for Deno
Stars: ✭ 129 (+63.29%)
Mutual labels:  deno
deno serverless aliyun
δΈΊι˜Ώι‡ŒδΊ‘ serverless 平台添加 Deno Runtime
Stars: ✭ 60 (-24.05%)
Mutual labels:  deno
sinco
Browser Automation and Testing Tool for Deno, written in full TypeScript
Stars: ✭ 54 (-31.65%)
Mutual labels:  deno
sqlite3
The fastest and correct module for SQLite3 in Deno.
Stars: ✭ 143 (+81.01%)
Mutual labels:  deno
svelte
Svelte compiler ported to Deno
Stars: ✭ 71 (-10.13%)
Mutual labels:  deno
crypto
πŸ” Fastest crypto library for Deno written in pure Typescript. AES, Blowfish, CAST5, DES, 3DES, HMAC, HKDF, PBKDF2
Stars: ✭ 40 (-49.37%)
Mutual labels:  deno
deno-bin
Use Deno via npm
Stars: ✭ 52 (-34.18%)
Mutual labels:  deno
justjavac
justjavac's modules
Stars: ✭ 15 (-81.01%)
Mutual labels:  deno
http4ts
Server as a Function http toolkit for TypeScript & JavaScript
Stars: ✭ 30 (-62.03%)
Mutual labels:  deno
denocker
A Docker client library for Deno
Stars: ✭ 23 (-70.89%)
Mutual labels:  deno
reno
A thin, testable routing library designed to sit on top of Deno's standard HTTP module
Stars: ✭ 127 (+60.76%)
Mutual labels:  deno

deno_registry2

This is the backend for the deno.land/x service.

Limits

There are a few guidelines / rules that you should follow when publishing a module:

  • Please only register module names that you will actually use.
  • Do not squat names. If you do, we might transfer the name to someone that makes better use of it.
  • Do not register names which contain trademarks that you do not own.
  • Do not publish modules containing illegal content.

Additionally to these guidelines there are also hard limits:

  • You can not publish more than 3 different modules from a single repository source.
  • You can not publish more than 15 modules from a single GitHub account or organization.

If you need an increase to these quotas, please reach out to [email protected].

Requirements

Preparing Docker

Make sure to follow the official instructions to login to ECR via the Docker cli - this is needed to push the images used by the Lambda deployment to ECR.

aws ecr get-login-password --region region | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com

Preparing MongoDB Atlas

  1. Create an API key on MongoDB Atlas. The API key should have sufficient privileges to create a new project and configure it afterwards.

Deploy

  1. Install aws CLI.
  2. Sign in to aws by running aws configure
  3. Install Terraform version 0.13 or higher
  4. Copy terraform/terraform.tfvars.example to terraform/terraform.tfvars
  5. Modify terraform/terraform.tfvars: set mongodb_atlas_org_id to your MongoDB Atlas organization ID, and update mongodb_atlas_private_key and mongodb_atlas_public_key with the API key you created earlier.
  6. Move to the terraform/ and comment out the backend section in the meta.tf file (important for first-time apply)
  7. Run the following steps:
terraform init
terraform plan -var-file terraform.tfvars -out plan.tfplan
terraform apply plan.tfplan
aws s3 ls | grep 'terraform-state' # take note of your tf state bucket name
# before the final step, go back and remove the comments from step 5
terraform init -backend-config "bucket=<your-bucket-name>" -backend-config "region=<aws-region>"

Setting up MongoDB

Terraform automatically provisions a MongoDB cluster in a separate project.

  1. In the newly created MongoDB cluster, create a database called production.
  2. In this database create a collection called modules.
  3. In this collection create a new Atlas Search index with the name default and the mapping defined in indexes/atlas_search_index_mapping.json
  4. In this collection create a new index with the name by_owner_and_repo like it is defined in indexes/modules_by_owner_and_repo.json
  5. In this collection create a new index with the name by_is_unlisted_and_star_count like it is defined in indexes/modules_by_is_unlisted_and_star_count.json
  6. In this database create a collection called builds.
  7. In this collection create a new unique index with the name by_name_and_version like it is defined in indexes/builds_by_name_and_version.json

Teardown

Before destroying your staging environment, make sure to:

  1. run terraform state pull to make a local copy of your state file
  2. comment out the backend section of the meta.tf file
  3. re-initialize your terraform workspace by running terraform init -backend-config "region=<aws-region>"
  4. make sure you empty your s3 buckets, otherwise the destroy will fail

You can then run terraform destroy to completely remove your staging environment.

Development

To run tests locally, make sure you have Docker and docker-compose installed. Then run:

make test
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].