All Projects → vinyldns → Vinyldns

vinyldns / Vinyldns

Licence: apache-2.0
DNS Governance for streamlining DNS operations and enabling safe and secure DNS self-service

Programming Languages

scala
5932 projects

Projects that are alternatives of or similar to Vinyldns

Auroradns.gui
纯净抗污染,简单轻量级
Stars: ✭ 494 (+68.6%)
Mutual labels:  hacktoberfest, dns
Sgdigittextfield
Elegant and Simplest Digit UITextField
Stars: ✭ 47 (-83.96%)
Mutual labels:  hacktoberfest, secure
Awesome Checker Services
✅ List of links to the various checkers out there on the web for sites, domains, security etc.
Stars: ✭ 662 (+125.94%)
Mutual labels:  hacktoberfest, dns
Ftl
The Pi-hole FTL engine
Stars: ✭ 776 (+164.85%)
Mutual labels:  hacktoberfest, dns
Playframework
Play Framework
Stars: ✭ 12,041 (+4009.56%)
Mutual labels:  hacktoberfest, playframework
Secure Ls
🔒 Secure localStorage data with high level of encryption and data compression
Stars: ✭ 486 (+65.87%)
Mutual labels:  hacktoberfest, secure
Arashidns.aoi
Simple DNS over HTTPS Server
Stars: ✭ 41 (-86.01%)
Mutual labels:  hacktoberfest, dns
Docker Pi Hole
Pi-hole in a docker container
Stars: ✭ 4,288 (+1363.48%)
Mutual labels:  hacktoberfest, dns
Emberclear
Encrypted Chat. No History. No Logs.
Stars: ✭ 157 (-46.42%)
Mutual labels:  hacktoberfest, secure
Passer
Passive service locator, a python sniffer that identifies servers, clients, names and much more
Stars: ✭ 144 (-50.85%)
Mutual labels:  hacktoberfest, dns
Dns Tool
A set of browser-based DNS tools for DigitalOcean Community.
Stars: ✭ 50 (-82.94%)
Mutual labels:  hacktoberfest, dns
Pdns
PowerDNS Authoritative, PowerDNS Recursor, dnsdist
Stars: ✭ 2,575 (+778.84%)
Mutual labels:  hacktoberfest, dns
Otoroshi
Lightweight api management on top of a modern http reverse proxy
Stars: ✭ 177 (-39.59%)
Mutual labels:  hacktoberfest, playframework
Lagom
Reactive Microservices for the JVM
Stars: ✭ 2,590 (+783.96%)
Mutual labels:  hacktoberfest, playframework
Vue Cli Plugin Electron Builder
Easily Build Your Vue.js App For Desktop With Electron
Stars: ✭ 3,549 (+1111.26%)
Mutual labels:  hacktoberfest
Loopback4 Example Shopping
LoopBack 4 Example: Online Shopping APIs
Stars: ✭ 292 (-0.34%)
Mutual labels:  hacktoberfest
Armeria
Your go-to microservice framework for any situation, from the creator of Netty et al. You can build any type of microservice leveraging your favorite technologies, including gRPC, Thrift, Kotlin, Retrofit, Reactive Streams, Spring Boot and Dropwizard.
Stars: ✭ 3,392 (+1057.68%)
Mutual labels:  hacktoberfest
Workflow Core
Lightweight workflow engine for .NET Standard
Stars: ✭ 3,605 (+1130.38%)
Mutual labels:  hacktoberfest
Hwloc
Hardware locality (hwloc)
Stars: ✭ 289 (-1.37%)
Mutual labels:  hacktoberfest
Mermaid Cli
Command line tool for the Mermaid library
Stars: ✭ 286 (-2.39%)
Mutual labels:  hacktoberfest

Join the chat at https://gitter.im/vinyldns Build CodeCov CII Best Practices License conduct

VinylDNS

VinylDNS

VinylDNS is a vendor agnostic front-end for enabling self-service DNS and streamlining DNS operations. VinylDNS manages millions of DNS records supporting thousands of engineers in production at Comcast. The platform provides fine-grained access controls, auditing of all changes, a self-service user interface, secure RESTful API, and integration with infrastructure automation tools like Ansible and Terraform. It is designed to integrate with your existing DNS infrastructure, and provides extensibility to fit your installation.

VinylDNS helps secure DNS management via:

  • AWS Sig4 signing of all messages to ensure that the message that was sent was not altered in transit
  • Throttling of DNS updates to rate limit concurrent updates against your DNS systems
  • Encrypting user secrets and TSIG keys at rest and in-transit
  • Recording every change made to DNS records and zones

Integration is simple with first-class language support including:

  • java
  • ruby
  • python
  • go-lang
  • javascript

Table of Contents

Quickstart

Docker images for VinylDNS live on Docker Hub at https://hub.docker.com/u/vinyldns/. To start up a local instance of VinylDNS on your machine with docker:

  1. Ensure that you have docker and docker-compose
  2. Clone the repo: git clone https://github.com/vinyldns/vinyldns.git
  3. Navigate to repo: cd vinyldns
  4. Run ./bin/docker-up-vinyldns.sh. This will start up the api at localhost:9000 and the portal at localhost:9001
  5. See Developer Guide for how to load a test DNS zone
  6. To stop the local setup, run ./bin/remove-vinyl-containers.sh.

There exist several clients at https://github.com/vinyldns that can be used to make API requests, using the endpoint http://localhost:9000

Things to try in the portal

  1. View the portal at http://localhost:9001 in a web browser
  2. Login with the credentials professor and professor
  3. Navigate to the groups tab: http://localhost:9001/groups
  4. Click on the New Group button and create a new group, the group id is the uuid in the url after you view the group
  5. View zones you connected to in the zones tab: http://localhost:9001/zones. For a quick test, create a new zone named "ok" with an email of "[email protected]" and choose a group you created from the previous step. (Note, see Developer Guide for creating a zone)
  6. You will see that some records are preloaded in the zoned already, this is because these records are preloaded in the local docker DNS server and VinylDNS automatically syncs records with the backend DNS server upon zone connection
  7. From here, you can create DNS record sets in the Manage Records tab, and manage zone settings and ACL rules in the Manage Zone tab
  8. To try creating a DNS record, click on the Create Record Set button under Records, Record Type = A, Record Name = my-test-a, TTL = 300, IP Addressess = 1.1.1.1
  9. Click on the Refresh button under Records, you should see your new record created

Other things to note

  1. Upon connecting to a zone for the first time, a zone sync is executed to provide VinylDNS a copy of the records in the zone
  2. Changes made via VinylDNS are made against the DNS backend, you do not need to sync the zone further to push those changes out
  3. If changes to the zone are made outside of VinylDNS, then the zone will have to be re-synced to give VinylDNS a copy of those records
  4. If you wish to modify the url used in the creation process from http://localhost:9000, to say http://vinyldns.yourdomain.com:9000, you can modify the bin/.env file before execution.
  5. A similar docker/.env.quickstart can be modified to change the default ports for the Portal and API. You must also modify their config files with the new port: https://www.vinyldns.io/operator/config-portal & https://www.vinyldns.io/operator/config-api

Code of Conduct

This project and everyone participating in it are governed by the VinylDNS Code Of Conduct. By participating, you agree to this Code. Please report any violations to the code of conduct to [email protected].

Developer Guide

See DEVELOPER_GUIDE.md for instructions on setting up VinylDNS locally.

Contributing

See the Contributing Guide.

Roadmap

See ROADMAP.md for the future plans for VinylDNS.

Contact

Maintainers and Contributors

The current maintainers (people who can merge pull requests) are:

  • Paul Cleary
  • Ryan Emerle
  • Nima Eskandary

See AUTHORS.md for the full list of contributors to VinylDNS.

See MAINTAINERS.md for documentation specific to maintainers

Credits

VinylDNS would not be possible without the help of many other pieces of open source software. Thank you open source world!

Initial development of DynamoDBHelper done by Roland Kuhn from https://github.com/akka/akka-persistence-dynamodb/blob/8d7495821faef754d97759f0d3d35ed18fc17cc7/src/main/scala/akka/persistence/dynamodb/journal/DynamoDBHelper.scala

Given the Apache 2.0 license of VinylDNS, we specifically want to call out the following libraries and their corresponding licenses shown below.

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].