├── .github └── dependabot.yml ├── .gitignore ├── .rubocop.yml ├── .rubocop_dnsimple.yml ├── .rubocop_todo.yml ├── .tool-versions ├── Gemfile ├── Gemfile.lock ├── README.md ├── Rakefile ├── example ├── config.json └── readme.md ├── lib ├── dnsimple_services.rb └── dnsimple_services │ ├── logger │ └── stdout.rb │ └── verifier.rb └── services ├── 404 ├── config.json ├── logo.png └── readme.md ├── 4ormat ├── config.json ├── logo.png └── readme.md ├── aldryn ├── config.json ├── instructions.md ├── logo.png └── readme.md ├── amazon-elasticbeanstalk ├── config.json ├── logo.png └── readme.md ├── amazon-lightsail ├── config.json ├── instructions.md ├── logo.png └── readme.md ├── amazon-s3 ├── config.json ├── logo.png └── readme.md ├── atmail ├── config.json ├── logo.png └── readme.md ├── bitbucket ├── config.json ├── instructions.md ├── logo.png └── readme.md ├── blackbell ├── config.json ├── instructions.md ├── logo.png └── readme.md ├── blogger ├── config.json ├── instructions.md ├── logo.png └── readme.md ├── clickfunnels ├── config.json ├── logo.png └── readme.md ├── cloudflare ├── config.json ├── instructions.md ├── logo.png └── readme.md ├── divshot ├── config.json ├── instructions.md ├── logo.png └── readme.md ├── djeese ├── config.json └── logo.png ├── fanout ├── config.json ├── instructions.md ├── logo.png └── readme.md ├── fastly ├── config.json ├── logo.png └── readme.md ├── fastmail ├── config.json ├── logo.png └── readme.md ├── format ├── config.json ├── logo.png └── readme.md ├── geniuslink ├── config.json ├── logo.png └── readme.md ├── gigalixir ├── config.json ├── instructions.md ├── logo.png └── readme.md ├── github-pages ├── config.json ├── instructions.md ├── logo.png └── readme.md ├── google-apps ├── config.json ├── instructions.md ├── logo.png └── readme.md ├── heroku-ssl ├── config.json ├── instructions.md ├── logo.png └── readme.md ├── heroku ├── config.json ├── instructions.md ├── logo.png └── readme.md ├── icloud-plus ├── config.json ├── logo.png └── readme.md ├── jimdo ├── config.json ├── instructions.md ├── logo.png └── readme.md ├── kickofflabs ├── config.json ├── logo.png └── readme.md ├── launchrock ├── config.json ├── logo.png └── readme.md ├── mailgun ├── config.json ├── logo.png └── readme.md ├── netlify ├── config.json ├── instructions.md ├── logo.png └── readme.md ├── office-365 ├── config.json ├── instructions.md ├── logo.png └── readme.md ├── page-not-found ├── config.json ├── logo.png └── readme.md ├── paperplane ├── config.json ├── logo.png └── readme.md ├── platformsh ├── config.json ├── instructions.md ├── logo.png └── readme.md ├── pobox ├── config.json ├── instructions.md ├── logo.png └── readme.md ├── postmark-dmarc ├── config.json ├── logo.png └── readme.md ├── postmark ├── config.json ├── logo.png └── readme.md ├── rackspace-email ├── config.json ├── logo.png └── readme.md ├── roon ├── config.json ├── logo.png └── readme.md ├── shopify ├── config.json ├── logo.png └── readme.md ├── simplybuilt ├── config.json ├── instructions.md ├── logo.png └── readme.md ├── squarespace ├── config.json ├── logo.png └── readme.md ├── squarespace6 ├── config.json ├── logo.png └── readme.md ├── supadupa ├── config.json ├── logo.png └── readme.md ├── surge ├── config.json ├── logo.png └── readme.md ├── tender ├── config.json ├── logo.png └── readme.md ├── tumblr ├── config.json ├── logo.png └── readme.md ├── urlforward ├── config.json ├── logo.png └── readme.md ├── webflow ├── config.json ├── logo.png └── readme.md ├── weebly ├── config.json ├── logo.png └── readme.md ├── windows-azure ├── config.json ├── logo.png └── readme.md └── wordpress ├── config.json ├── instructions.md ├── logo.png └── readme.md /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: bundler 4 | directory: / 5 | schedule: 6 | interval: daily 7 | time: '12:00' 8 | open-pull-requests-limit: 10 9 | labels: 10 | - task 11 | - dependencies 12 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /.rubocop.yml: -------------------------------------------------------------------------------- 1 | --- 2 | inherit_from: 3 | - .rubocop_todo.yml 4 | - .rubocop_dnsimple.yml 5 | 6 | require: 7 | - rubocop-performance 8 | - rubocop-rake 9 | 10 | AllCops: 11 | TargetRubyVersion: 3.4.2 12 | Exclude: 13 | - '*.gemspec' 14 | - 'Rakefile' 15 | - 'vendor/**/*' 16 | -------------------------------------------------------------------------------- /.rubocop_dnsimple.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Defaults https://github.com/bbatsov/rubocop/blob/master/config/default.yml 3 | # 4 | # References: 5 | # * https://github.com/bbatsov/ruby-style-guide 6 | # * https://rubocop.readthedocs.io/ 7 | 8 | AllCops: 9 | Exclude: 10 | # Exclude .gemspec files because they are generally auto-generated 11 | - '*.gemspec' 12 | NewCops: enable 13 | 14 | # In most cases, Gems are sorted alphabetically. 15 | # However, in some few cases the order is relevant due to dependencies. 16 | Bundler/OrderedGems: 17 | Enabled: false 18 | 19 | # This cop requires odd code indentations (as of rubocop 0.57.0) 20 | # https://github.com/rubocop-hq/rubocop/issues/5956 21 | Layout/AccessModifierIndentation: 22 | Enabled: false 23 | 24 | # It causes weird aligments, especially for specs. 25 | Layout/BlockEndNewline: 26 | Enabled: false 27 | 28 | # Generally, the keyword style uses a lot of space. This is particularly true 29 | # when you use case/if statements, in combination with a long-name variable. 30 | # 31 | # invoice_error_message = case error 32 | # when 1 == 1 33 | # do_something 34 | # else 35 | # do_else 36 | # end 37 | # 38 | Layout/EndAlignment: 39 | EnforcedStyleAlignWith: variable 40 | 41 | # [codesmell] 42 | Layout/LineLength: 43 | Enabled: false 44 | Exclude: 45 | - 'spec/**/*_spec.rb' 46 | - 'test/**/*_test.rb' 47 | Max: 100 48 | 49 | # [codesmell] 50 | Lint/SuppressedException: 51 | Enabled: false 52 | 53 | # [codesmell] 54 | Metrics/AbcSize: 55 | Enabled: false 56 | Exclude: 57 | - 'spec/**/*_spec.rb' 58 | - 'test/**/*_test.rb' 59 | 60 | # [codesmell] 61 | Metrics/BlockLength: 62 | Enabled: false 63 | 64 | # [codesmell] 65 | Metrics/CyclomaticComplexity: 66 | Enabled: false 67 | Exclude: 68 | - 'spec/**/*_spec.rb' 69 | - 'test/**/*_test.rb' 70 | 71 | # [codesmell] 72 | Metrics/ClassLength: 73 | Enabled: false 74 | Exclude: 75 | - 'spec/**/*_spec.rb' 76 | - 'test/**/*_test.rb' 77 | 78 | # [codesmell] 79 | Metrics/MethodLength: 80 | Enabled: false 81 | Exclude: 82 | - 'spec/**/*_spec.rb' 83 | - 'test/**/*_test.rb' 84 | Max: 10 85 | 86 | # [codesmell] 87 | Metrics/ModuleLength: 88 | Enabled: false 89 | Exclude: 90 | - 'spec/**/*_spec.rb' 91 | - 'test/**/*_test.rb' 92 | 93 | # [codesmell] 94 | Metrics/ParameterLists: 95 | Enabled: false 96 | Max: 5 97 | 98 | # [codesmell] 99 | Metrics/PerceivedComplexity: 100 | Enabled: false 101 | 102 | # We tend to use @_name to represent a variable that is memoized, 103 | # but it should not be accessed directly and kept as private. 104 | Naming/MemoizedInstanceVariableName: 105 | Enabled: false 106 | 107 | # We use it from time to time, as it's not always possible (or maintainable) 108 | # to use simple ? methods. 109 | # Moreover, it's actually more efficient to not-use predicates: 110 | # https://github.com/bbatsov/rubocop/issues/3633 111 | Naming/PredicateName: 112 | Enabled: false 113 | 114 | # The team agreed decided to use exception 115 | Naming/RescuedExceptionsVariableName: 116 | PreferredName: 'exception' 117 | 118 | # This cop triggers several false positives that make sense in our domain model. 119 | # For instance, ip is considered an uncommunicative parameter name: 120 | # 121 | # ipv4_to_arpa_name(ip) 122 | # 123 | Naming/MethodParameterName: 124 | Enabled: false 125 | 126 | # This cop returns false positive violations (as of rubocop 0.57.0) 127 | # https://github.com/rubocop-hq/rubocop/issues/5953 128 | Style/AccessModifierDeclarations: 129 | Enabled: false 130 | 131 | # Do not use "and" or "or" in conditionals, but for readability we can use it 132 | # to chain executions. Just beware of operator order. 133 | Style/AndOr: 134 | EnforcedStyle: conditionals 135 | 136 | # No specific reason, except that %q() is easier to grep than %() 137 | Style/BarePercentLiterals: 138 | EnforcedStyle: percent_q 139 | 140 | # braces_for_chaining seems a good fit of what we've been doing so far. 141 | Style/BlockDelimiters: 142 | EnforcedStyle: braces_for_chaining 143 | AllowedMethods: 144 | - expect 145 | 146 | # Warn on empty else. 147 | Style/EmptyElse: 148 | EnforcedStyle: empty 149 | 150 | # There is no specific preference for empty methods. 151 | # One-line methods are not exceptionally nice in Ruby. 152 | # Just ignore this cop for now. 153 | Style/EmptyMethod: 154 | Enabled: false 155 | 156 | # We don't care about the format style. 157 | # In most cases we use %, but not at the point we want to enforce it 158 | # as a convention in the entire code. 159 | Style/FormatString: 160 | Enabled: false 161 | 162 | # Annotated tokens (like %s) are a good thing, 163 | # but in most cases we don't need them. 164 | # %s is a simpler and straightforward version that works in almost all cases. 165 | # So don't complain. 166 | Style/FormatStringToken: 167 | Enabled: false 168 | 169 | # Prefer the latest Hash syntax 170 | Style/HashSyntax: 171 | Exclude: 172 | # Rakefiles generally have definitions like 173 | # :default => :test 174 | # that looks nicer with the old rocket syntax. 175 | - 'Rakefile' 176 | 177 | # Enforces usage of Hash#each_key and Hash#each_value (vs. Hash#keys.each 178 | # and Hash#values.each). 179 | Style/HashEachMethods: 180 | Enabled: true 181 | 182 | # Enforce the use of Hash#TransformKeys introduced in Ruby 2.5 to transform 183 | # Hash keys. 184 | Style/HashTransformKeys: 185 | Enabled: true 186 | 187 | # Enforce the use of Hash#TransformValues introduced in Ruby 2.5 to transform 188 | # Hash values. 189 | Style/HashTransformValues: 190 | Enabled: true 191 | 192 | # We want to be able to decide when to use one-line if/unless modifiers. 193 | Style/IfUnlessModifier: 194 | Enabled: false 195 | 196 | # [codesmell] 197 | # It's not always that bad. 198 | Style/IfInsideElse: 199 | Enabled: false 200 | 201 | # module_function doesn't respect the visibility of the methods, 202 | # and doesn't work well when the module contains both public/private methods. 203 | Style/ModuleFunction: 204 | Enabled: false 205 | 206 | Style/MultilineBlockChain: 207 | Exclude: 208 | # RSpec uses multi-line blocks for certain features 209 | - 'spec/**/*_spec.rb' 210 | 211 | # unless is not always cool. 212 | Style/NegatedIf: 213 | Enabled: false 214 | 215 | # Magic numbers are not welcomed 216 | Style/NumericLiterals: 217 | Exclude: 218 | # however tests can use numeric literals for method calls, 219 | # without the need to define a variable just for that. 220 | - 'spec/**/*_spec.rb' 221 | - 'test/**/*_test.rb' 222 | 223 | # For years, %w() has been the de-facto standard. 224 | # A lot of libraries are using (). Switching to [] would be a nightmare. 225 | Style/PercentLiteralDelimiters: 226 | Enabled: false 227 | 228 | # Enable but only for multiple returns value. 229 | # 230 | # return foo, bar 231 | # 232 | # reads much better than 233 | # 234 | # [foo, bar] 235 | # 236 | Style/RedundantReturn: 237 | AllowMultipleReturnValues: true 238 | 239 | # Do we care? 240 | Style/RegexpLiteral: 241 | Enabled: false 242 | 243 | # There are cases were the inline rescue is ok. We can either downgrade 244 | # the severity, or rely on the developer judgement on a case-by-case basis. 245 | Style/RescueModifier: 246 | Enabled: false 247 | 248 | # This is quite annoying, especially in cases where we don't control it 249 | # (e.g. schema.rb). 250 | Style/SymbolArray: 251 | Enabled: false 252 | 253 | # We don't have a preference. 254 | Style/SpecialGlobalVars: 255 | Enabled: false 256 | EnforcedStyle: use_perl_names 257 | 258 | # We generally use double quotes, sometimes single quotes. 259 | # Should we enforce it at code level? 260 | Style/StringLiterals: 261 | Enabled: false 262 | EnforcedStyle: double_quotes 263 | 264 | # As before. 265 | Style/StringLiteralsInInterpolation: 266 | Enabled: false 267 | EnforcedStyle: double_quotes 268 | 269 | # It's nice to be consistent. The trailing comma also allows easy reordering, 270 | # and doesn't cause a diff in Git when you add a line to the bottom. 271 | Style/TrailingCommaInArrayLiteral: 272 | EnforcedStyleForMultiline: consistent_comma 273 | 274 | # It's nice to be consistent. The trailing comma also allows easy reordering, 275 | # and doesn't cause a diff in Git when you add a line to the bottom. 276 | Style/TrailingCommaInHashLiteral: 277 | EnforcedStyleForMultiline: consistent_comma 278 | 279 | Style/TrivialAccessors: 280 | # IgnoreClassMethods because I want to be able to define class-level accessors 281 | # that sets an instance variable on the metaclass, such as: 282 | # 283 | # def self.default=(value) 284 | # @default = value 285 | # end 286 | # 287 | IgnoreClassMethods: true 288 | 289 | Style/WordArray: 290 | EnforcedStyle: percent 291 | MinSize: 3 292 | 293 | # Forces the order of comparison arguments. 294 | # 295 | # According to this cop, the following statement is bad: 296 | # 297 | # "https" == uri.scheme 298 | # 299 | # Whereas the following is considered good: 300 | # 301 | # uri.scheme == "https" 302 | Style/YodaCondition: 303 | Enabled: false 304 | 305 | # For the same reason of EndAlignment, aligning with the case may have 306 | # a bad impact on a case after a very long variable. 307 | # 308 | # invoice_error_message = case error 309 | # when 1 == 1 310 | # do_something 311 | # else 312 | # do_else 313 | # end 314 | # 315 | Layout/CaseIndentation: 316 | EnforcedStyle: end 317 | 318 | # I was a big fan of leading, but trailing seems to be more commonly adopted. 319 | # At least at the time being. 320 | Layout/DotPosition: 321 | EnforcedStyle: leading 322 | 323 | # Double empty lines are useful to separate conceptually different methods 324 | # in the same class or module. 325 | Layout/EmptyLines: 326 | Enabled: false 327 | 328 | # This is buggy. It detects as a style violation a few `class` 329 | # and `module` definitions 330 | Layout/EmptyLinesAroundArguments: 331 | Enabled: false 332 | 333 | Layout/EmptyLinesAroundBlockBody: 334 | Exclude: 335 | # RSpec is all made of blocks. Disable this config in RSpec 336 | # to be consistent with EmptyLinesAroundClassBody 337 | # and EmptyLinesAroundModuleBody 338 | - 'spec/**/*_spec.rb' 339 | - 'test/**/*_test.rb' 340 | 341 | # In most cases, a space is nice. Sometimes, it's not. 342 | # Just be consistent with the rest of the surrounding code. 343 | Layout/EmptyLinesAroundClassBody: 344 | Enabled: false 345 | 346 | # We're ok with it. We use it quite often for method-level rescue statements. 347 | Layout/EmptyLinesAroundExceptionHandlingKeywords: 348 | Enabled: false 349 | 350 | # In most cases, a space is nice. Sometimes, it's not. 351 | # Just be consistent with the rest of the surrounding code. 352 | Layout/EmptyLinesAroundModuleBody: 353 | Enabled: false 354 | 355 | # This is quite buggy, as it doesn't recognize double lines. 356 | Layout/EmptyLineBetweenDefs: 357 | Enabled: false 358 | 359 | # Multi-line differs from standard indentation, they are indented twice. 360 | Layout/FirstArgumentIndentation: 361 | IndentationWidth: 4 362 | 363 | # Array indentation should be consistent with method/variable definition. 364 | Layout/FirstArrayElementIndentation: 365 | EnforcedStyle: consistent 366 | 367 | # Hash indentation should be consistent with method/variable definition. 368 | Layout/FirstHashElementIndentation: 369 | EnforcedStyle: consistent 370 | 371 | # Multi-line differs from standard indentation, they are indented twice. 372 | Layout/MultilineMethodCallIndentation: 373 | EnforcedStyle: indented 374 | IndentationWidth: 4 375 | 376 | # Multi-line differs from standard indentation, they are indented twice. 377 | Layout/MultilineOperationIndentation: 378 | EnforcedStyle: indented 379 | IndentationWidth: 4 380 | 381 | # Sorry, but using trailing spaces helps readability. 382 | # 383 | # %w( foo bar ) 384 | # 385 | # looks better than: 386 | # 387 | # %w(foo bar) 388 | # 389 | Layout/SpaceInsidePercentLiteralDelimiters: 390 | Enabled: false 391 | -------------------------------------------------------------------------------- /.rubocop_todo.yml: -------------------------------------------------------------------------------- 1 | # This configuration was generated by 2 | # `rubocop --auto-gen-config` 3 | # on 2023-01-26 18:59:03 UTC using RuboCop version 1.44.1. 4 | # The point is for the user to remove these configuration records 5 | # one by one as the offenses are removed from the code base. 6 | # Note that changes in the inspected code, or installation of new 7 | # versions of RuboCop, may require this file to be generated again. 8 | 9 | # Offense count: 1 10 | Security/Open: 11 | Exclude: 12 | - 'lib/dnsimple_services.rb' 13 | 14 | # Offense count: 2 15 | # Configuration parameters: AllowedConstants. 16 | Style/Documentation: 17 | Exclude: 18 | - 'spec/**/*' 19 | - 'test/**/*' 20 | - 'lib/dnsimple_services.rb' 21 | - 'lib/dnsimple_services/verifier.rb' 22 | -------------------------------------------------------------------------------- /.tool-versions: -------------------------------------------------------------------------------- 1 | # Update also: .rubocop.yml 2 | ruby 3.4.2 3 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | source "http://rubygems.org" 4 | 5 | gem "rake" 6 | gem "rugged" 7 | gem "yajl-ruby", "~> 1.4.3" 8 | gem "dimensions" 9 | 10 | gem "rubocop" 11 | gem "rubocop-rake" 12 | gem "rubocop-performance" 13 | -------------------------------------------------------------------------------- /Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: http://rubygems.org/ 3 | specs: 4 | ast (2.4.3) 5 | dimensions (1.3.0) 6 | json (2.10.2) 7 | language_server-protocol (3.17.0.4) 8 | lint_roller (1.1.0) 9 | parallel (1.26.3) 10 | parser (3.3.7.4) 11 | ast (~> 2.4.1) 12 | racc 13 | prism (1.4.0) 14 | racc (1.8.1) 15 | rainbow (3.1.1) 16 | rake (13.2.1) 17 | regexp_parser (2.10.0) 18 | rubocop (1.75.1) 19 | json (~> 2.3) 20 | language_server-protocol (~> 3.17.0.2) 21 | lint_roller (~> 1.1.0) 22 | parallel (~> 1.10) 23 | parser (>= 3.3.0.2) 24 | rainbow (>= 2.2.2, < 4.0) 25 | regexp_parser (>= 2.9.3, < 3.0) 26 | rubocop-ast (>= 1.43.0, < 2.0) 27 | ruby-progressbar (~> 1.7) 28 | unicode-display_width (>= 2.4.0, < 4.0) 29 | rubocop-ast (1.43.0) 30 | parser (>= 3.3.7.2) 31 | prism (~> 1.4) 32 | rubocop-performance (1.25.0) 33 | lint_roller (~> 1.1) 34 | rubocop (>= 1.75.0, < 2.0) 35 | rubocop-ast (>= 1.38.0, < 2.0) 36 | rubocop-rake (0.7.1) 37 | lint_roller (~> 1.1) 38 | rubocop (>= 1.72.1) 39 | ruby-progressbar (1.13.0) 40 | rugged (1.9.0) 41 | unicode-display_width (3.1.4) 42 | unicode-emoji (~> 4.0, >= 4.0.4) 43 | unicode-emoji (4.0.4) 44 | yajl-ruby (1.4.3) 45 | 46 | PLATFORMS 47 | ruby 48 | 49 | DEPENDENCIES 50 | dimensions 51 | rake 52 | rubocop 53 | rubocop-performance 54 | rubocop-rake 55 | rugged 56 | yajl-ruby (~> 1.4.3) 57 | 58 | BUNDLED WITH 59 | 2.6.6 60 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Welcome 2 | 3 | Welcome to the home of the [DNSimple](https://dnsimple.com) service templates. The one-click services in DNSimple are defined as JSON configurations and loaded into our system at deploy time. This means that you can contribute a new template by creating a pull request, simplifying the process of creating and updating templates. 4 | 5 | # Contributing 6 | 7 | Read through the documentation below and look at the other templates in this repository before starting your own. If you have any questions feel free to get in touch with the DNSimple team using the support@dnsimple.com email address. Once you're ready to create your template, fork the project, add the template and issue a pull request. 8 | 9 | # Tools 10 | 11 | If you have ruby installed then you can use the following steps to get a few rake tasks to make creating new service configurations easier: 12 | 13 | * `gem install bundler --no-ri --no-rdoc` 14 | * `bundle install` 15 | 16 | Once you've done that you have access to several tasks: 17 | 18 | To generate a new service definition: 19 | 20 | `rake generate[$name]` where $name is the short name of your service (for example: wordpress) 21 | 22 | For example: `rake generate[my-service]` 23 | 24 | To verify that a service definition meets our requirements for deployment: 25 | 26 | `rake verify[$name]` where $name is the short name of your service 27 | 28 | For example: `rake verify[blogger]` 29 | 30 | # Service Definitions 31 | 32 | Services are each stored in their own directory. A service definition must have a config.json file and a logo.png file at minimum. The logo.png must be 228 pixels wide by 78 pixels high. 33 | 34 | Services may have a readme.md file and/or an instructions.md file as well. 35 | 36 | ## config.json 37 | 38 | The JSON object defined in config.json holds all of the configuration details for the service. At minimum it must include the config section and the records collection with at least one record, however it may include the fields collection and a hook object as well. 39 | 40 | ### Config 41 | 42 | The config section contains meta-data about the template. All of these attributes are required. 43 | 44 | * name - The unique template name. All lower-case and only the characters a-z, 0-9 and the dash. 45 | * label - The human-readable template name, used for display. 46 | * description - An English description of the template, used for display. 47 | * category - ["blogging" | "hosting" | "infrastructure" | "email" | "ecommerce" | "productivity" ] 48 | * default-subdomain - Optional: If the service requires a subdomain and none is provided then use this. 49 | 50 | #### Categories 51 | 52 | You have to choose one and only one category for your service: 53 | 54 | * blogging 55 | * hosting (static pages, CMS) 56 | * infrastructure (CDN, link shorteners) 57 | * email 58 | * ecommerce 59 | * productivity (google-workspace, office-365, marketing, support) 60 | 61 | #### Remove services 62 | 63 | To remove a specific service from the list of available one-click services, add the `deprecated` attribute to the config section for that service. This prevents users from selecting that service, but keeps the existing configuration if it was applied to a domain before the deprecation. We don't delete any DNS records when a service is deprecated. 64 | 65 | ``` 66 | config { 67 | ... 68 | "deprecated": true 69 | } 70 | ``` 71 | 72 | ### Fields 73 | 74 | A list of variable names and descriptions. These are presented to the user in the UI. 75 | 76 | The variables are substituted into the content and name for each record when the template records are rendered into real records. 77 | 78 | Each field may have the following attributes: 79 | 80 | * name - When rendered the record subtitues values with the given name. 81 | * label - Displayed to customers as the field label when the field is displayed. 82 | * description - Displayed to customers as help text when the field is displayed. 83 | * append - Text that is appended to the input field. 84 | * example - Text that is subsitituted in samples that are displayed to customers. 85 | 86 | ### Records 87 | 88 | A list of record objects which are rendered to create the real records. 89 | 90 | Each record may have the following attributes: 91 | 92 | * name - The host name (if omitted, it will be considered a blank string). Joined with the domain name to produce the fully-qualified record host name (optional subdomain + domain name) when rendered. 93 | * type - The DNS type (such as "A", "CNAME", "MX", etc). 94 | * content - The content of the record, such as an IP address or another host name. This depends on the record type. 95 | * ttl - The time-to-live for the record. 96 | * prio - The priority of the record. Used for MX and SRV records. 97 | 98 | The name, type and content fields may use variables defined in the Attributes section as well as any values returned by the service hook. 99 | 100 | Service records are rendered into the real records when the service is applied to a domain. All variables such as {{variable_name}} are replaced with attributes at this time. If a subdomain is provided then the record name is prepended to the subdomain which is joined with the domain name. For example, if the record name is "email", the subdomain is "staging", and the domain "example.com", the full record name will be "email.staging.example.com". If the record name is provided but the subdomain is omitted, then the full name would be "email.example.com". If the record name is omitted then it would be "staging.example.com". If the subdomain is omitted and the record name is omitted, then it would be "example.com". 101 | 102 | In addition to custom attributes, there are also the following variables: 103 | 104 | * domain - The domain name, such as example.com. 105 | * subdomain - The subdomain name, such as www. 106 | 107 | ### Hook 108 | 109 | Service hooks provide a way to invoke a URL when the service is applied. This can be used to execute custom behavior at services. 110 | 111 | One example service that uses hooks is CloudFlare. The hook is used to provision the domain in the CloudFlare system. 112 | 113 | The `url` attribute is a fully qualified URL that is invoked in one of several ways: 114 | 115 | * POST url on create 116 | * DELETE url on delete 117 | 118 | The following parameters are always sent to the hook as an application/x-www-form-urlencoded body. 119 | 120 | * domain_name: The domain name that the service is being applied to. 121 | * subdomain: The subdomain that the service is being applied to. May be blank. 122 | * user_id: The DNSimple user ID of the customer applying the service. 123 | 124 | In addition to the parameters that are always sent, the values provided by the customer for any fields specified in the service definition are sent along as well. 125 | 126 | For example, using the Heroku template, the body of a POST might look like the following: 127 | 128 | domain_name=example.com&user_id=123&app=myapp 129 | 130 | The hook must return 200 to indicate that the operation completed successfully. Any status code other than 200 are considered an error. 131 | 132 | The hook may return a JSON object that contains variables that is substitued in records within the service definition. 133 | 134 | For example, the Cloudflare hook returns the following JSON: 135 | 136 | { 137 | "user_key": "some_user_key", 138 | "target_name": "abef4637291", 139 | "target_type": "CNAME" 140 | } 141 | 142 | Any values returned from the hook are merged with the customer-provided values before being rendered into the services records. 143 | 144 | ## readme.md 145 | 146 | All service definitions should include a readme.md file that explains what the service is for and whether there any specific details about the service that are important. The readme.md is a Markdown file. 147 | 148 | ## instructions.md 149 | 150 | If a service requires additional set up you should include an instructions.md file. The file is a Markdown file and will be displayed on the service setup screen. 151 | -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- 1 | require 'yajl' 2 | require 'dimensions' 3 | 4 | require_relative 'lib/dnsimple_services' 5 | 6 | ## The following are used by Rake 7 | 8 | task default: [:verify] 9 | 10 | desc "Generate a new service" 11 | task :generate, :name do |t, args| 12 | name = args[:name] 13 | label = args[:label] 14 | 15 | begin 16 | DnsimpleServices.generate(name, label) 17 | rescue DnsimpleServices::GeneratorError => e 18 | puts "Error: #{e}" 19 | end 20 | end 21 | 22 | desc "Verify a service" 23 | task :verify, :name do |t, args| 24 | name = args[:name] 25 | 26 | if name 27 | begin 28 | DnsimpleServices.verify(name) 29 | rescue DnsimpleServices::VerifierError => e 30 | puts "Error: #{e}" 31 | end 32 | else 33 | Dir.entries("services").reject { |n| n == "." || n == ".." }.each do |service_name| 34 | puts "Checking #{service_name}" 35 | begin 36 | DnsimpleServices.verify(service_name) 37 | rescue DnsimpleServices::VerifierError => e 38 | puts "Error: #{e}" 39 | end 40 | end 41 | end 42 | end 43 | -------------------------------------------------------------------------------- /example/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "%{name}", 4 | "label": "%{label}", 5 | "description": "This is a short description of the service", 6 | "category": "infrastructure", 7 | "subdomain-required": true 8 | }, 9 | "fields": [ 10 | 11 | ], 12 | "records": [ 13 | { 14 | "name": "", 15 | "type": "CNAME", 16 | "content": "example.com", 17 | "ttl": 3600 18 | } 19 | ] 20 | } 21 | 22 | -------------------------------------------------------------------------------- /example/readme.md: -------------------------------------------------------------------------------- 1 | Explain what the service is here. 2 | -------------------------------------------------------------------------------- /lib/dnsimple_services.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require_relative 'dnsimple_services/verifier' 4 | require_relative 'dnsimple_services/logger/stdout' 5 | 6 | module DnsimpleServices 7 | DEFAULT_LABEL = "Printable name for the service" 8 | DEFAULT_DESCRIPTION = "This is a short description of the service" 9 | 10 | LOGO_DIMENSIONS = [228, 78].freeze 11 | 12 | class GeneratorError < RuntimeError 13 | end 14 | 15 | class VerifierError < RuntimeError 16 | end 17 | 18 | def self.generate(name, label) 19 | raise GeneratorError, "Name is required" unless name 20 | 21 | outdir = "services/#{name}" 22 | raise GeneratorError, "Service already exists" if File.exist?(outdir) 23 | 24 | label ||= DEFAULT_LABEL 25 | 26 | FileUtils.mkdir_p outdir 27 | FileUtils.cp Dir["example/*"], outdir 28 | config_path = "#{outdir}/config.json" 29 | config = File.read config_path 30 | open(config_path, 'w') do |f| 31 | vars = { name:, label: } 32 | f.write(config % vars) 33 | end 34 | end 35 | 36 | def self.verify(name, logger = Logger::Stdout.new) 37 | raise VerifierError, "Name is required" unless name 38 | 39 | problems, recommendations = Verifier.new(name).verify 40 | 41 | logger << "" 42 | if problems.empty? 43 | logger << "Service definition for #{name} successfully verified." 44 | else 45 | logger << "#{problems.length} issues with #{name}:" 46 | logger << "" 47 | problems.each do |description| 48 | logger << " * #{description}" 49 | end 50 | end 51 | 52 | unless recommendations.empty? 53 | logger << "" 54 | logger << "#{recommendations.length} recommendations for #{name}:" 55 | logger << "" 56 | recommendations.each do |description| 57 | logger << " * #{description}" 58 | end 59 | end 60 | 61 | logger << "" 62 | end 63 | 64 | 65 | end 66 | -------------------------------------------------------------------------------- /lib/dnsimple_services/logger/stdout.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module DnsimpleServices 4 | module Logger 5 | # A logger that writes the output messages to STDOUT. 6 | class Stdout 7 | def write(message) 8 | puts message 9 | end 10 | alias << write 11 | end 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /lib/dnsimple_services/verifier.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module DnsimpleServices 4 | class Verifier 5 | attr_reader :name, :problems, :recommendations, :outdir, :config_path, :logo_path 6 | 7 | def initialize(name) 8 | @name = name 9 | @problems = [] 10 | @recommendations = [] 11 | 12 | @outdir = "services/#{name}" 13 | @config_path = "#{outdir}/config.json" 14 | @logo_path = "#{outdir}/logo.png" 15 | end 16 | 17 | def verify 18 | problems << "The service directory for #{name} does not exist" unless File.exist?(outdir) 19 | problems << "A service must have a logo.png file that is 228 x 78 pixels" unless valid_logo? 20 | if File.exist?(config_path) 21 | verify_config 22 | else 23 | problems << "A service must have a valid config.json file" 24 | end 25 | 26 | recommendations << "A service should have a readme.md file" unless File.exist?("#{outdir}/readme.md") 27 | 28 | [problems, recommendations] 29 | end 30 | 31 | private 32 | 33 | def valid_logo? 34 | File.exist?(logo_path) && Dimensions.dimensions(logo_path) == LOGO_DIMENSIONS 35 | end 36 | 37 | def verify_config 38 | config = Yajl::Parser.parse(File.read(config_path)) 39 | if config 40 | verify_config_data(config['config']) 41 | verify_records(config['records']) 42 | else 43 | problems << "A service config.json must define a JSON object" 44 | end 45 | rescue Yajl::ParseError => exception 46 | problems << "JSON #{exception}" 47 | end 48 | 49 | def verify_config_data(config_data) 50 | if config_data 51 | verify_config_name(config_data['name']) 52 | verify_config_label(config_data['label']) 53 | verify_config_description(config_data['description']) 54 | else 55 | problems << "A service config.json must have a 'config' section" 56 | end 57 | end 58 | 59 | def verify_config_name(config_name) 60 | if config_name 61 | problems << "The service name may only include the lowercase characters a-z, 0-9 and the dash character" unless /^[a-z0-9-]+$/.match?(config_name) 62 | recommendations << "The service config name should be the same as the service directory name" if config_name != name 63 | else 64 | problems << "The service config must have a name attribute" 65 | end 66 | end 67 | 68 | def verify_config_label(config_label) 69 | if config_label 70 | recommendations << "The service config label should be set to something useful" if config_label == DEFAULT_LABEL 71 | else 72 | problems << "A service config must have a label attribute" 73 | end 74 | end 75 | 76 | def verify_config_description(config_description) 77 | if config_description 78 | recommendations << "The service config description should be set to something useful" if config_description == DEFAULT_DESCRIPTION 79 | else 80 | problems << "A service config must have a description attribute" 81 | end 82 | end 83 | 84 | def verify_records(records) 85 | if records 86 | problems << "A service records section must be a list of services with at least one service" unless records.is_a?(Array) && records.length >= 1 87 | 88 | record_types = %w(type ttl content) 89 | records.each_with_index do |record, index| 90 | record_types.each do |attr| 91 | problems << "Record #{index + 1} is missing the #{attr} attribute" unless record[attr] 92 | end 93 | end 94 | else 95 | problems << "A service config.json must have a 'records' section" 96 | end 97 | end 98 | end 99 | end 100 | -------------------------------------------------------------------------------- /services/404/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "deprecated": true, 4 | "name": "404", 5 | "label": "404 Not Found Page", 6 | "description": "Will display a 404 not found page with random images or videos along with your domain name", 7 | "category": "infrastructure", 8 | "default-subdomain": "404", 9 | "subdomain-required": true 10 | }, 11 | "records": [ 12 | { 13 | "type": "CNAME", 14 | "content": "404.al", 15 | "ttl": 3600 16 | } 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /services/404/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/404/logo.png -------------------------------------------------------------------------------- /services/404/readme.md: -------------------------------------------------------------------------------- 1 | [404.al](https://404.al) will display a 404 not found page with random images or videos along with your domain name. -------------------------------------------------------------------------------- /services/4ormat/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "4ormat", 4 | "label": "4ormat", 5 | "description": "format is an online portfolio platform for professionally showcasing your work.", 6 | "default-subdomain": "www", 7 | "category": "hosting", 8 | "deprecated": true 9 | }, 10 | "records": [ 11 | { 12 | "type": "CNAME", 13 | "content": "format.com", 14 | "ttl": 3600 15 | } 16 | ] 17 | } 18 | 19 | -------------------------------------------------------------------------------- /services/4ormat/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/4ormat/logo.png -------------------------------------------------------------------------------- /services/4ormat/readme.md: -------------------------------------------------------------------------------- 1 | [4ormat](http://4ormat.com) is an online portfolio platform that provides complete freedom for professionally showcasing your work to clients, employers, patrons, and the world at large. 2 | -------------------------------------------------------------------------------- /services/aldryn/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "aldryn", 4 | "label": "Divio Aldryn", 5 | "description": "Lift django CMS into the cloud", 6 | "category": "hosting" 7 | }, 8 | "fields": [ 9 | { 10 | "name": "project_domain", 11 | "label": "Aldryn Project Domain", 12 | "description": "e.g mysite.us.aldryn.io", 13 | "example": "mysite.us.aldryn.io" 14 | } 15 | ], 16 | "records": [ 17 | { 18 | "type": "ALIAS", 19 | "content": "{{project_domain}}", 20 | "ttl": 3600 21 | }, 22 | { 23 | "name": "www", 24 | "type": "CNAME", 25 | "content": "{{project_domain}}", 26 | "ttl": 3600 27 | } 28 | ] 29 | } 30 | -------------------------------------------------------------------------------- /services/aldryn/instructions.md: -------------------------------------------------------------------------------- 1 | To setup DNS for your custom domain complete the following steps: 2 | 3 | 1. Head over to [control.aldryn.com](https://control.aldryn.com) and navigate to the dashboard of your project. 4 | 2. Navigate to the **Domain Settings** section. 5 | 3. Add your custom domains (e.g *mysite.com* and *www.mysite.com*) by clicking the **Add Domain** button. 6 | 4. Copy the value of **Aldryn Project Domain** into the field below. 7 | -------------------------------------------------------------------------------- /services/aldryn/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/aldryn/logo.png -------------------------------------------------------------------------------- /services/aldryn/readme.md: -------------------------------------------------------------------------------- 1 | Aldryn Cloud is Divio’s platform for Web Professionals. It provides hosting of 2 | django CMS websites. 3 | -------------------------------------------------------------------------------- /services/amazon-elasticbeanstalk/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "amazon-elasticbeanstalk", 4 | "label": "AWS Elastic Beanstalk", 5 | "description": "Amazon Elastic Beanstalk is an easy way for you to quickly deploy and manage applications in the AWS cloud", 6 | "category": "infrastructure" 7 | }, 8 | "fields": [ 9 | { 10 | "name": "site", 11 | "label": "Elastic Beanstalk Subdomain", 12 | "description": "Enter your elasticbeanstalk.com subdomain", 13 | "append": "elasticbeanstalk.com", 14 | "example": "yoursite" 15 | } 16 | ], 17 | "records": [ 18 | { 19 | "type": "ALIAS", 20 | "content": "{{site}}.elasticbeanstalk.com", 21 | "ttl": 3600 22 | } 23 | ] 24 | } 25 | 26 | -------------------------------------------------------------------------------- /services/amazon-elasticbeanstalk/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/amazon-elasticbeanstalk/logo.png -------------------------------------------------------------------------------- /services/amazon-elasticbeanstalk/readme.md: -------------------------------------------------------------------------------- 1 | Explain what the service is here. 2 | -------------------------------------------------------------------------------- /services/amazon-lightsail/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "amazon-lightsail", 4 | "label": "AWS Lightsail", 5 | "description": "Amazon Lightsail is an easy way for you to quickly deploy and manage applications in the AWS cloud.", 6 | "category": "infrastructure" 7 | }, 8 | "fields": [ 9 | { 10 | "name": "ip", 11 | "label": "Static IP", 12 | "description": "Enter your AWS Lightsail instance public static IP", 13 | "example": "1.1.1.1" 14 | } 15 | ], 16 | "records": [ 17 | { 18 | "type": "A", 19 | "content": "{{ip}}", 20 | "ttl": 3600 21 | } 22 | ] 23 | } 24 | -------------------------------------------------------------------------------- /services/amazon-lightsail/instructions.md: -------------------------------------------------------------------------------- 1 | To setup DNS for your custom domain complete the following steps: 2 | 3 | Follow these steps https://lightsail.aws.amazon.com/ls/docs/en_us/articles/lightsail-create-static-ip in order to create a Static IP for your existing Lightsail instance. 4 | -------------------------------------------------------------------------------- /services/amazon-lightsail/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/amazon-lightsail/logo.png -------------------------------------------------------------------------------- /services/amazon-lightsail/readme.md: -------------------------------------------------------------------------------- 1 | [Amazon Lightsail](https://aws.amazon.com/lightsail/) is an Amazon cloud service that offers bundles of cloud compute power and memory for new or less experienced cloud users. 2 | 3 | -------------------------------------------------------------------------------- /services/amazon-s3/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "amazon-s3", 4 | "label": "AWS S3", 5 | "description": "Amazon Simple Storage Service provides a fully redundant data storage infrastructure.", 6 | "category": "infrastructure" 7 | }, 8 | "fields": [ 9 | { 10 | "name": "region", 11 | "label": "AWS Region", 12 | "description": "The abbreviation of the AWS region the bucket is stored", 13 | "example": "us-east-1" 14 | } 15 | ], 16 | "records": [ 17 | { 18 | "type": "ALIAS", 19 | "content": "{{domain}}.s3-website-{{region}}.amazonaws.com", 20 | "ttl": 3600 21 | } 22 | ] 23 | } 24 | -------------------------------------------------------------------------------- /services/amazon-s3/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/amazon-s3/logo.png -------------------------------------------------------------------------------- /services/amazon-s3/readme.md: -------------------------------------------------------------------------------- 1 | [Amazon S3](http://aws.amazon.com/s3/) provides a simple web services interface that can be used to store and retrieve any amount of data, at any time, from anywhere on the web. To [host your static website on S3](http://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html), you configure an Amazon S3 bucket for website hosting and then upload your website content to the bucket. 2 | -------------------------------------------------------------------------------- /services/atmail/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "atmail", 4 | "label": "Atmail", 5 | "description": "Atmail provides messaging solutions for ISP's, enterprise and small business. Email server, webmail and calendar deployed on-premise or in the cloud.", 6 | "category": "email" 7 | }, 8 | "fields": [ 9 | { 10 | "name": "username", 11 | "label": "Atmail Account Username", 12 | "description": "Your Atmail username is used to connect services to your account.", 13 | "append": ".atmailcloud.com", 14 | "example": "username" 15 | } 16 | ], 17 | "records": [ 18 | { 19 | "type": "MX", 20 | "content": "mx1-{{username}}.atmailcloud.com", 21 | "ttl": 3600, 22 | "prio": 10 23 | }, { 24 | "type": "MX", 25 | "content": "mx2-{{username}}.atmailcloud.com", 26 | "ttl": 3600, 27 | "prio": 20 28 | }, { 29 | "name": "webmail", 30 | "type": "CNAME", 31 | "content": "{{username}}.atmailcloud.com", 32 | "ttl": 3600 33 | } 34 | ] 35 | } 36 | -------------------------------------------------------------------------------- /services/atmail/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/atmail/logo.png -------------------------------------------------------------------------------- /services/atmail/readme.md: -------------------------------------------------------------------------------- 1 | [Atmail](http://atmail.com/) provides messaging solutions for ISP's, enterprise and small business. Email server, webmail and calendar deployed on-premise or in the cloud. 2 | -------------------------------------------------------------------------------- /services/bitbucket/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "bitbucket", 4 | "label": "Bitbucket", 5 | "description": "Access your Bitbucket repositories from git.domain.tld", 6 | "default-subdomain": "git", 7 | "deprecated": true 8 | }, 9 | "records": [ 10 | { 11 | "type": "CNAME", 12 | "content": "bitbucket.org", 13 | "ttl": 3600 14 | } 15 | ] 16 | } 17 | 18 | -------------------------------------------------------------------------------- /services/bitbucket/instructions.md: -------------------------------------------------------------------------------- 1 | 1. Log into the Bitbucket account you want to alias. 2 | 2. Choose **your avatar > Manage Account** from the menu bar. 3 | 3. Choose **Custom domain** from the left menu bar. 4 | 4. Enter a **CNAME** in the field provided - `git.domain.tld` - and choose **Save domain**. 5 | -------------------------------------------------------------------------------- /services/bitbucket/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/bitbucket/logo.png -------------------------------------------------------------------------------- /services/bitbucket/readme.md: -------------------------------------------------------------------------------- 1 | Alias a custom domain to your individual or team account page on [Bitbucket](https://bitbucket.org/) using a DNS CNAME. 2 | 3 | Please note that accessing a Bitbucket account configured with a custom domain over HTTPS may result in security warnings from your browser. 4 | 5 | [More information](http://confluence.atlassian.com/display/BITBUCKET/Associate+an+existing+domain+with+an+account) 6 | -------------------------------------------------------------------------------- /services/blackbell/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "blackbell", 4 | "label": "Blackbell", 5 | "description": "The simplest way to sell services.", 6 | "category": "ecommerce", 7 | "subdomain-required": true 8 | }, 9 | "fields": [ 10 | { 11 | "name": "cname", 12 | "label": "Select subdomain", 13 | "description": "", 14 | "example": "www" 15 | } 16 | ], 17 | "records": [ 18 | { 19 | "name": "{{cname}}", 20 | "type": "CNAME", 21 | "content": "cname.blackbellapp.com", 22 | "ttl": 600 23 | } 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /services/blackbell/instructions.md: -------------------------------------------------------------------------------- 1 | Enter which subdomain should load your Blackbell. You must also add the same subdomain in Blackbell backoffice domain page. 2 | -------------------------------------------------------------------------------- /services/blackbell/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/blackbell/logo.png -------------------------------------------------------------------------------- /services/blackbell/readme.md: -------------------------------------------------------------------------------- 1 | The simplest way to sell services. 2 | Visit [Blackbell](https://www.blackbell.com) for details. 3 | -------------------------------------------------------------------------------- /services/blogger/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "blogger", 4 | "label": "Blogger", 5 | "description": "Use Blogger for your blog.", 6 | "default-subdomain": "www", 7 | "category": "blogging" 8 | }, 9 | "records": [ 10 | { 11 | "type": "CNAME", 12 | "content": "ghs.google.com", 13 | "ttl": 3600 14 | } 15 | ] 16 | } 17 | 18 | -------------------------------------------------------------------------------- /services/blogger/instructions.md: -------------------------------------------------------------------------------- 1 | In order to use a custom domain name with Blogger follow the steps below: 2 | 3 | 1. Add the Blogger service to the domain and check the DNS records are correctly applied to your domain. You will need to provide the name of the blog you created in Blogger. 4 | 1. Follow the steps to [enable the custom domain in your Blogger blog](https://support.google.com/blogger/troubleshooter/1233381?hl=en#ts=1734117). The URL for the custom domain will be `blog.mydomain.com` (replace `mydomain` with your real domain name). 5 | -------------------------------------------------------------------------------- /services/blogger/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/blogger/logo.png -------------------------------------------------------------------------------- /services/blogger/readme.md: -------------------------------------------------------------------------------- 1 | [Blogger](http://blogger.com/) is a free blogging service provided by Google. 2 | -------------------------------------------------------------------------------- /services/clickfunnels/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "ClickFunnels", 4 | "label": "ClickFunnels", 5 | "description": "A website and funnel builder that helps businesses sell their products and services online", 6 | "category": "ecommerce" 7 | }, 8 | "records": [ 9 | { 10 | "name": "", 11 | "type": "ALIAS", 12 | "content": "target.clickfunnels.com", 13 | "ttl": 3600 14 | }, 15 | { 16 | "name": "www", 17 | "type": "URL", 18 | "content": "https://{{domain}}", 19 | "ttl": 3600 20 | } 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /services/clickfunnels/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/clickfunnels/logo.png -------------------------------------------------------------------------------- /services/clickfunnels/readme.md: -------------------------------------------------------------------------------- 1 | [ClickFunnels](https://www.clickfunnels.com/) is a website and funnel builder that helps businesses sell their products and services https://www.clickfunnels.com/ 2 | -------------------------------------------------------------------------------- /services/cloudflare/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "deprecated": true, 4 | "name": "cloudflare", 5 | "label": "CloudFlare", 6 | "description": "Protect and accelerate your web site.", 7 | "default-subdomain": "www", 8 | "category": "infrastructure" 9 | }, 10 | "fields": [ 11 | { 12 | "name": "email", 13 | "label": "Email", 14 | "description": "Either your existing CloudFlare email address or the one you would like to use" 15 | }, 16 | { 17 | "name": "password", 18 | "label": "Password", 19 | "description": "Either your existing CloudFlare password or a new password if this is a new CloudFlare account", 20 | "password": true 21 | }, 22 | { 23 | "name": "target_address_or_host", 24 | "label": "Target IP Address or Hostname", 25 | "description": "Enter the IP address or fully-qualified hostname for your server where your website lives" 26 | } 27 | ], 28 | "records": [ 29 | { 30 | "type": "CNAME", 31 | "content": "{{subdomain}}.{{domain}}.cdn.cloudflare.net", 32 | "ttl": 3600 33 | }, 34 | { 35 | "name": "{{target_name}}", 36 | "type": "{{target_type}}", 37 | "content": "{{target_address_or_host}}", 38 | "ttl": 3600 39 | } 40 | ] 41 | } 42 | -------------------------------------------------------------------------------- /services/cloudflare/instructions.md: -------------------------------------------------------------------------------- 1 | To complete CloudFlare set up, please either provide your existing CloudFlare credentials or enter your email address and a new password to create a new CloudFlare account. 2 | 3 | If you are creating a new CloudFlare account please [review the CloudFlare Terms of Service](https://www.cloudflare.com/terms.html) before continuing. 4 | -------------------------------------------------------------------------------- /services/cloudflare/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/cloudflare/logo.png -------------------------------------------------------------------------------- /services/cloudflare/readme.md: -------------------------------------------------------------------------------- 1 | [CloudFlare](https://www.cloudflare.com/) protects and accelerates any website online. Once your website is a part of the CloudFlare community, its web traffic is routed through their intelligent global network. They automatically optimize the delivery of your web pages so your visitors get the fastest page load times and best performance. They also block threats and limit abusive bots and crawlers from wasting your bandwidth and server resources. The result: CloudFlare-powered websites see a significant improvement in performance and a decrease in spam and other attacks. 2 | -------------------------------------------------------------------------------- /services/divshot/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "divshot", 4 | "label": "Divshot", 5 | "description": "Use Divshot as your web host.", 6 | "deprecated": true 7 | }, 8 | "fields": [ 9 | { 10 | "name": "app", 11 | "label": "Divshot App Name", 12 | "description": "Your app name is part of your Divshot URL, for example: in yourapp.divshot.io the app name is yourapp", 13 | "append": ".divshot.io", 14 | "example": "yourapp" 15 | } 16 | ], 17 | "records": [ 18 | { 19 | "type": "ALIAS", 20 | "content": "{{app}}.divshot.io", 21 | "ttl": 3600 22 | }, 23 | { 24 | "name": "www", 25 | "type": "CNAME", 26 | "content": "{{app}}.divshot.io", 27 | "ttl": 3600 28 | } 29 | ] 30 | } 31 | 32 | -------------------------------------------------------------------------------- /services/divshot/instructions.md: -------------------------------------------------------------------------------- 1 | Enter your Divshot app name to continue. You will also need to [add a custom domain](http://docs.divshot.com/guides/domains) to your Divshot application. -------------------------------------------------------------------------------- /services/divshot/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/divshot/logo.png -------------------------------------------------------------------------------- /services/divshot/readme.md: -------------------------------------------------------------------------------- 1 | [Divshot](http://www.divshot.com/) is a static web hosting platform-as-a-service 2 | built for developer productivity. We give you zero-configuration CDN, pushState 3 | routing support, built-in development/staging environments, and more. Perfect 4 | for Angular, Ember, and Jekyll sites. -------------------------------------------------------------------------------- /services/djeese/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "djeese", 4 | "label": "Djeese", 5 | "description": "The easiest way to build websites with django CMS.", 6 | "deprecated": true 7 | }, 8 | "records": [ 9 | { 10 | "type": "ALIAS", 11 | "content": "hosted.djee.se", 12 | "ttl": 3600 13 | } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /services/djeese/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/djeese/logo.png -------------------------------------------------------------------------------- /services/fanout/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "fanout", 4 | "label": "Fanout", 5 | "description": "Fanout makes it easy to add realtime push to your API.", 6 | "category": "infrastructure" 7 | }, 8 | 9 | "fields": [ 10 | { 11 | "name": "realm", 12 | "label": "Realm ID", 13 | "description": "This is your realm ID as shown in the Fanout control panel.", 14 | "append": ".fanoutcdn.com", 15 | "example": "f3dc0a7e" 16 | } 17 | ], 18 | 19 | "records": [ 20 | { 21 | "type": "ALIAS", 22 | "content": "{{realm}}.fanoutcdn.com", 23 | "ttl": 3600 24 | } 25 | ] 26 | } 27 | -------------------------------------------------------------------------------- /services/fanout/instructions.md: -------------------------------------------------------------------------------- 1 | Enter your Fanout realm ID. 2 | -------------------------------------------------------------------------------- /services/fanout/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/fanout/logo.png -------------------------------------------------------------------------------- /services/fanout/readme.md: -------------------------------------------------------------------------------- 1 | [Fanout](http://fanout.io/) makes it easy to add realtime push to your API. 2 | 3 | This service maps a custom domain to your Fanout Cloud realm. The custom domain feature is available for free for any Fanout account. 4 | -------------------------------------------------------------------------------- /services/fastly/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "fastly", 4 | "label": "Fastly", 5 | "description": "Fastly is a CDN (Content Delivery Network).", 6 | "category": "infrastructure" 7 | }, 8 | "records": [ 9 | { 10 | "type": "ALIAS", 11 | "content": "global.prod.fastly.net", 12 | "ttl": 3600 13 | } 14 | ] 15 | } 16 | 17 | -------------------------------------------------------------------------------- /services/fastly/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/fastly/logo.png -------------------------------------------------------------------------------- /services/fastly/readme.md: -------------------------------------------------------------------------------- 1 | [Fastly](http://www.fastly.com) is a CDN (Content Delivery Network). 2 | -------------------------------------------------------------------------------- /services/fastmail/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "fastmail", 4 | "label": "FastMail", 5 | "description": "Email, calendars and contacts done right.", 6 | "category": "email" 7 | }, 8 | "records": [ 9 | { 10 | "type": "MX", 11 | "content": "in1-smtp.messagingengine.com", 12 | "ttl": 3600, 13 | "prio": 10 14 | }, 15 | { 16 | "type": "MX", 17 | "content": "in2-smtp.messagingengine.com", 18 | "ttl": 3600, 19 | "prio": 20 20 | }, 21 | { 22 | "name": "*", 23 | "type": "MX", 24 | "content": "in1-smtp.messagingengine.com", 25 | "ttl": 3600, 26 | "prio": 10 27 | }, 28 | { 29 | "name": "*", 30 | "type": "MX", 31 | "content": "in2-smtp.messagingengine.com", 32 | "ttl": 3600, 33 | "prio": 20 34 | }, 35 | { 36 | "name": "mail", 37 | "type": "MX", 38 | "content": "in1-smtp.messagingengine.com", 39 | "ttl": 3600, 40 | "prio": 10 41 | }, 42 | { 43 | "name": "mail", 44 | "type": "MX", 45 | "content": "in2-smtp.messagingengine.com", 46 | "ttl": 3600, 47 | "prio": 20 48 | }, 49 | { 50 | "name": "mail", 51 | "type": "ALIAS", 52 | "content": "mail.fastmail.com", 53 | "ttl": 3600 54 | }, 55 | { 56 | "name": "fm1._domainkey", 57 | "type": "CNAME", 58 | "content": "fm1.{{domain}}.dkim.fmhosted.com", 59 | "ttl": 3600 60 | }, 61 | { 62 | "name": "fm2._domainkey", 63 | "type": "CNAME", 64 | "content": "fm2.{{domain}}.dkim.fmhosted.com", 65 | "ttl": 3600 66 | }, 67 | { 68 | "name": "fm3._domainkey", 69 | "type": "CNAME", 70 | "content": "fm3.{{domain}}.dkim.fmhosted.com", 71 | "ttl": 3600 72 | }, 73 | { 74 | "type": "TXT", 75 | "content": "v=spf1 include:spf.messagingengine.com ~all", 76 | "ttl": 3600 77 | }, 78 | { 79 | "name": "_client._smtp", 80 | "type": "SRV", 81 | "content": "1 1 {{domain}}.", 82 | "ttl": 3600, 83 | "prio": 1 84 | }, 85 | { 86 | "name": "_submission._tcp", 87 | "type": "SRV", 88 | "content": "1 587 smtp.fastmail.com.", 89 | "ttl": 3600, 90 | "prio": 0 91 | }, 92 | { 93 | "name": "_imaps._tcp", 94 | "type": "SRV", 95 | "content": "1 993 imap.fastmail.com.", 96 | "ttl": 3600, 97 | "prio": 0 98 | }, 99 | { 100 | "name": "_pop3s._tcp", 101 | "type": "SRV", 102 | "content": "1 995 pop.fastmail.com.", 103 | "ttl": 3600, 104 | "prio": 10 105 | }, 106 | { 107 | "name": "_carddavs._tcp", 108 | "type": "SRV", 109 | "content": "1 443 carddav.fastmail.com.", 110 | "ttl": 3600, 111 | "prio": 0 112 | }, 113 | { 114 | "name": "_caldavs._tcp", 115 | "type": "SRV", 116 | "content": "1 443 caldav.fastmail.com.", 117 | "ttl": 3600, 118 | "prio": 0 119 | } 120 | ] 121 | } 122 | -------------------------------------------------------------------------------- /services/fastmail/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/fastmail/logo.png -------------------------------------------------------------------------------- /services/fastmail/readme.md: -------------------------------------------------------------------------------- 1 | Email, calendars and contacts done right. 2 | -------------------------------------------------------------------------------- /services/format/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "format", 4 | "label": "format", 5 | "description": "The online portfolio photographers choose to showcase their work and grow their business.", 6 | "category": "hosting" 7 | }, 8 | "fields": [ 9 | { 10 | "name": "site", 11 | "label": "Format Address", 12 | "description": "The Format Address field configured at Format.com", 13 | "append": ".format.com", 14 | "example": "my-site" 15 | } 16 | ], 17 | "records": [ 18 | { 19 | "type": "CNAME", 20 | "name": "www", 21 | "content": "{{site}}.format.com", 22 | "ttl": 3600 23 | }, 24 | { 25 | "type": "URL", 26 | "name": "", 27 | "content": "http://www.{{domain}}", 28 | "ttl": 3600 29 | } 30 | ] 31 | } 32 | 33 | -------------------------------------------------------------------------------- /services/format/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/format/logo.png -------------------------------------------------------------------------------- /services/format/readme.md: -------------------------------------------------------------------------------- 1 | [4ormat](http://4ormat.com) is an online portfolio platform that provides complete freedom for professionally showcasing your work to clients, employers, patrons, and the world at large. 2 | -------------------------------------------------------------------------------- /services/geniuslink/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "geniuslink", 4 | "label": "Geniuslink", 5 | "description": "Intelligent Link Shortener. Earn more with short links that work across any country, store, device and OS.", 6 | "category": "infrastructure" 7 | }, 8 | "records": [ 9 | { 10 | "type": "ALIAS", 11 | "content": "geni.us", 12 | "ttl": 60 13 | } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /services/geniuslink/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/geniuslink/logo.png -------------------------------------------------------------------------------- /services/geniuslink/readme.md: -------------------------------------------------------------------------------- 1 | [Geniuslink](https://geni.us) Intelligent Link Shortener. Earn more with short links that work across any country, store, device and OS. 2 | -------------------------------------------------------------------------------- /services/gigalixir/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "gigalixir", 4 | "label": "Gigalixir", 5 | "description": "Use Gigalixir as your web host.", 6 | "category": "infrastructure" 7 | }, 8 | "fields": [ 9 | { 10 | "name": "apexdomain", 11 | "label": "Gigalixir Apex App Name", 12 | "description": "Your Gigalixir Apex DNS name.", 13 | "example": "example.com.gigalixirdns.com" 14 | }, 15 | { 16 | "name": "wwwdomain", 17 | "label": "Gigalixir WWW App Name", 18 | "description": "Your Gigalixir WWW DNS name.", 19 | "example": "www.example.com.gigalixirdns.com" 20 | } 21 | ], 22 | "records": [ 23 | { 24 | "type": "ALIAS", 25 | "content": "{{apexdomain}}", 26 | "ttl": 3600 27 | }, 28 | { 29 | "name": "www", 30 | "type": "CNAME", 31 | "content": "{{wwwdomain}}", 32 | "ttl": 3600 33 | } 34 | ] 35 | } 36 | 37 | -------------------------------------------------------------------------------- /services/gigalixir/instructions.md: -------------------------------------------------------------------------------- 1 | You must also add your custom domain to your Gigalixir app with 2 | 3 | ``` 4 | gigalixir domains:add www.example.com 5 | gigalixir domains:add example.com 6 | ``` 7 | -------------------------------------------------------------------------------- /services/gigalixir/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/gigalixir/logo.png -------------------------------------------------------------------------------- /services/gigalixir/readme.md: -------------------------------------------------------------------------------- 1 | Elixir's Platform-as-a-Service. The only platform that fully supports Elixir. 2 | -------------------------------------------------------------------------------- /services/github-pages/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "github-pages", 4 | "label": "GitHub Pages", 5 | "description": "Publish static pages for you and your projects by pushing files to a GitHub repository.", 6 | "category": "hosting" 7 | }, 8 | 9 | "fields": [ 10 | { 11 | "name": "github_name", 12 | "label": "Github Pages Name", 13 | "description": "This will be a Github username, organization or project.", 14 | "append": ".github.io", 15 | "example": "mojombo" 16 | } 17 | ], 18 | 19 | "records": [ 20 | { 21 | "type": "ALIAS", 22 | "name": "", 23 | "content": "{{github_name}}.github.io", 24 | "ttl": 3600 25 | } 26 | ] 27 | } 28 | -------------------------------------------------------------------------------- /services/github-pages/instructions.md: -------------------------------------------------------------------------------- 1 | Enter your Github Pages user, organization or project name. 2 | -------------------------------------------------------------------------------- /services/github-pages/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/github-pages/logo.png -------------------------------------------------------------------------------- /services/github-pages/readme.md: -------------------------------------------------------------------------------- 1 | [GitHub Pages](http://pages.github.com/) is an easy way to quickly generate, publish and host static pages for you and your project, for free, with GitHub. 2 | 3 | This service maps a custom domain to your GitHub pages. The custom domain feature is available for free for any GitHub account. 4 | 5 | GitHub supports two type of pages: user or organization pages and per-project pages. You can create pages using the automatic generator, manually pushing html pages or a Jekyll site. 6 | -------------------------------------------------------------------------------- /services/google-apps/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "google-apps", 4 | "label": "Google Workspace", 5 | "description": "All the records you need for Google Workspace to function.", 6 | "category": "productivity" 7 | }, 8 | "records": [ 9 | { 10 | "type": "CNAME", 11 | "name": "mail", 12 | "content": "ghs.googlehosted.com", 13 | "ttl": 3600 14 | }, 15 | { 16 | "type": "CNAME", 17 | "name": "calendar", 18 | "content": "ghs.googlehosted.com", 19 | "ttl": 3600 20 | }, 21 | { 22 | "type": "MX", 23 | "content": "aspmx.l.google.com", 24 | "ttl": 3600, 25 | "prio": 1 26 | }, 27 | { 28 | "type": "MX", 29 | "content": "alt1.aspmx.l.google.com", 30 | "ttl": 3600, 31 | "prio": 5 32 | }, 33 | { 34 | "type": "MX", 35 | "content": "alt2.aspmx.l.google.com", 36 | "ttl": 3600, 37 | "prio": 5 38 | }, 39 | { 40 | "type": "MX", 41 | "content": "alt3.aspmx.l.google.com", 42 | "ttl": 3600, 43 | "prio": 10 44 | }, 45 | { 46 | "type": "MX", 47 | "content": "alt4.aspmx.l.google.com", 48 | "ttl": 3600, 49 | "prio": 10 50 | }, 51 | { 52 | "type": "TXT", 53 | "content": "v=spf1 a include:_spf.google.com ~all", 54 | "ttl": 3600 55 | } 56 | ] 57 | } 58 | -------------------------------------------------------------------------------- /services/google-apps/instructions.md: -------------------------------------------------------------------------------- 1 | Once you've added Google Workspace you must complete the setup of your custom domain with Google. 2 | -------------------------------------------------------------------------------- /services/google-apps/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/google-apps/logo.png -------------------------------------------------------------------------------- /services/google-apps/readme.md: -------------------------------------------------------------------------------- 1 | [Google Workspace](https://workspace.google.com) is a cloud-based productivity suite that helps you and your team connect and get work done from anywhere on any device. It's simple to setup, use and manage, allowing you to work smarter and focus on what really matters. 2 | -------------------------------------------------------------------------------- /services/heroku-ssl/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "heroku-ssl", 4 | "label": "Heroku SSL", 5 | "description": "Use Heroku as your web host, with SSL support.", 6 | "category": "infrastructure", 7 | "deprecated": true 8 | }, 9 | "fields": [ 10 | { 11 | "name": "apexdomain", 12 | "label": "Heroku Apex DNS Name", 13 | "description": "Your Heroku Apex DNS name.", 14 | "example": "apex-meta-foo.herokudns.com" 15 | }, 16 | { 17 | "name": "wwwdomain", 18 | "label": "Heroku WWW DNS Name", 19 | "description": "Your Heroku WWW DNS name", 20 | "example": "www-meta-foo.herokudns.com" 21 | } 22 | ], 23 | "records": [ 24 | { 25 | "type": "ALIAS", 26 | "content": "{{apexdomain}}", 27 | "ttl": 3600 28 | }, 29 | { 30 | "name": "www", 31 | "type": "CNAME", 32 | "content": "{{wwwdomain}}", 33 | "ttl": 3600 34 | } 35 | ] 36 | } 37 | -------------------------------------------------------------------------------- /services/heroku-ssl/instructions.md: -------------------------------------------------------------------------------- 1 | Enter your Heroku DNS name to continue. You must have a Hobby plan or higher to use this service and you must install your SSL certificate on Heroku first. You must also add your custom domain to your Heroku app settings. 2 | -------------------------------------------------------------------------------- /services/heroku-ssl/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/heroku-ssl/logo.png -------------------------------------------------------------------------------- /services/heroku-ssl/readme.md: -------------------------------------------------------------------------------- 1 | Deliver apps, the right way, over SSL. Cloud computing designed and built for developers. Note that you must have a Hobby plan or higher to use this service. 2 | 3 | Visit [Heroku](http://heroku.com)'s [SSL](https://devcenter.heroku.com/articles/ssl) documentation page for details. 4 | -------------------------------------------------------------------------------- /services/heroku/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "heroku", 4 | "label": "Heroku", 5 | "description": "Use Heroku as your web host.", 6 | "category": "infrastructure" 7 | }, 8 | "fields": [ 9 | { 10 | "name": "apexdomain", 11 | "label": "Apex DNS Target", 12 | "description": "The DNS Target supplied by Heroku for the apex/naked domain.", 13 | "example": "apex-meta-foo.herokudns.com" 14 | }, 15 | { 16 | "name": "wwwdomain", 17 | "label": "WWW DNS Target", 18 | "description": "The DNS Target supplied by Heroku for the WWW subdomain.", 19 | "example": "www-meta-foo.herokudns.com" 20 | } 21 | ], 22 | "records": [ 23 | { 24 | "type": "ALIAS", 25 | "content": "{{apexdomain}}", 26 | "ttl": 3600 27 | }, 28 | { 29 | "name": "www", 30 | "type": "CNAME", 31 | "content": "{{wwwdomain}}", 32 | "ttl": 3600 33 | } 34 | ] 35 | } 36 | 37 | -------------------------------------------------------------------------------- /services/heroku/instructions.md: -------------------------------------------------------------------------------- 1 | Enter your Heroku app name to continue. You must also add your custom domain to your Heroku app settings. 2 | -------------------------------------------------------------------------------- /services/heroku/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/heroku/logo.png -------------------------------------------------------------------------------- /services/heroku/readme.md: -------------------------------------------------------------------------------- 1 | Deliver apps, the right way. Cloud computing designed and built for developers. 2 | 3 | Visit [Heroku](http://heroku.com) for details. 4 | -------------------------------------------------------------------------------- /services/icloud-plus/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "icloud-plus", 4 | "label": "iCloud Plus", 5 | "description": "Set up a custom domain with iCloud Mail", 6 | "category": "email" 7 | }, 8 | 9 | "fields": [ 10 | { 11 | "name": "icloud_plus_txt", 12 | "label": "iCloud+ TXT record", 13 | "description": "Enter the personal TXT record provided during set up", 14 | "example": "" 15 | } 16 | ], 17 | 18 | "records": [ 19 | { 20 | "type": "TXT", 21 | "content": "{{icloud_plus_txt}}", 22 | "ttl": 3600 23 | }, 24 | { 25 | "type": "MX", 26 | "content": "mx01.mail.icloud.com", 27 | "prio": 10, 28 | "ttl": 3600 29 | }, 30 | { 31 | "type": "MX", 32 | "content": "mx02.mail.icloud.com", 33 | "prio": 10, 34 | "ttl": 3600 35 | }, 36 | { 37 | "type": "CNAME", 38 | "name": "sig1._domainkey", 39 | "content": "sig1.dkim.{{domain}}.at.icloudmailadmin.com", 40 | "prio": 10, 41 | "ttl": 3600 42 | }, 43 | { 44 | "type": "TXT", 45 | "content": "v=spf1 include:icloud.com ~all", 46 | "ttl": 3600 47 | } 48 | ] 49 | } 50 | -------------------------------------------------------------------------------- /services/icloud-plus/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/icloud-plus/logo.png -------------------------------------------------------------------------------- /services/icloud-plus/readme.md: -------------------------------------------------------------------------------- 1 | Set up a custom domain with iCloud Mail. 2 | -------------------------------------------------------------------------------- /services/jimdo/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "jimdo", 4 | "label": "Jimdo", 5 | "description": "Use your own domain for your Jimdo website. You need to have Jimdo Pro or Business to use your own domain.", 6 | "category": "hosting" 7 | }, 8 | 9 | "fields": [ 10 | { 11 | "name": "jimdo_name", 12 | "label": "Jimdo Site Name", 13 | "description": "This will be your Jimdo website name.", 14 | "append": ".jimdo.com", 15 | "example": "bobsmade" 16 | } 17 | ], 18 | 19 | "records": [ 20 | { 21 | "type": "ALIAS", 22 | "content": "{{jimdo_name}}.jimdo.com", 23 | "ttl": 3600 24 | }, 25 | { 26 | "type": "MX", 27 | "content": "mx1.jimdo.com", 28 | "prio": 10, 29 | "ttl": 3600 30 | }, 31 | { 32 | "type": "MX", 33 | "content": "mx2.jimdo.com", 34 | "prio": 10, 35 | "ttl": 3600 36 | } 37 | ] 38 | } 39 | -------------------------------------------------------------------------------- /services/jimdo/instructions.md: -------------------------------------------------------------------------------- 1 | To use your domain on your Jimdo site complete the following steps: 2 | 3 | 1. Apply the Jimdo template 4 | 2. Contact [Jimdo support](http://support.jimdo.com/) to add the mail to your domain 5 | 3. [Follow the steps](http://support.jimdo.com/domains/domain-settings/) to make this domain your primary domain 6 | 4. [Follow the steps](http://support.jimdo.com/email/mx-records/) to use the mails too 7 | -------------------------------------------------------------------------------- /services/jimdo/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/jimdo/logo.png -------------------------------------------------------------------------------- /services/jimdo/readme.md: -------------------------------------------------------------------------------- 1 | Jimdo offers a free website creator that anyone can use at [www.jimdo.com](www.jimdo.com). In just a few minutes and without any technical knowledge, anyone can create a place on the Internet – complete with online store, blog, photo galleries, YouTube videos and much more. 2 | 3 | This template adds all necessary DNS records to use your own domain for your jimdo site. It also adds the records needed for using the jimdo mail service. 4 | 5 | **You need to have Jimdo Pro or Business to use your own domain.** 6 | -------------------------------------------------------------------------------- /services/kickofflabs/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "kickofflabs", 4 | "label": "KickOffLabs", 5 | "description": "Get customers with viral landing pages, newsletters, and useful customer insights you can build yourself.", 6 | "category": "productivity" 7 | }, 8 | "records": [ 9 | { 10 | "type": "ALIAS", 11 | "content": "proxy.kickofflabs.com", 12 | "ttl": 3600 13 | }, 14 | { 15 | "name": "*", 16 | "type": "CNAME", 17 | "content": "proxy.kickofflabs.com", 18 | "ttl": 3600 19 | } 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /services/kickofflabs/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/kickofflabs/logo.png -------------------------------------------------------------------------------- /services/kickofflabs/readme.md: -------------------------------------------------------------------------------- 1 | Effortless Landing Pages + Smart Email Marketing and Social Referrals = More leads! 2 | 3 | Visit the [Kickoff Labs site](http://kickofflabs.com/) for details. 4 | -------------------------------------------------------------------------------- /services/launchrock/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "launchrock", 4 | "label": "LaunchRock", 5 | "description": "Set up a \"Launching Soon\" page in minutes. Collect interest, increase sharing and build your audience.", 6 | "category": "hosting" 7 | }, 8 | "records": [ 9 | { 10 | "type": "ALIAS", 11 | "content": "host.launchrock.com", 12 | "ttl": 3600 13 | }, 14 | { 15 | "name": "*", 16 | "type": "CNAME", 17 | "content": "host.launchrock.com", 18 | "ttl": 3600 19 | } 20 | ] 21 | } 22 | 23 | 24 | -------------------------------------------------------------------------------- /services/launchrock/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/launchrock/logo.png -------------------------------------------------------------------------------- /services/launchrock/readme.md: -------------------------------------------------------------------------------- 1 | Start Now and Launch Your Page in Minutes. 2 | 3 | Visit [Launchrock](http://launchrock.com) for details. 4 | -------------------------------------------------------------------------------- /services/mailgun/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "mailgun", 4 | "label": "Mailgun", 5 | "description": "Mailgun is a set of powerful APIs that allow you to send, receive, track and store email effortlessly.", 6 | "category": "email" 7 | }, 8 | "records": [ 9 | { 10 | "type": "TXT", 11 | "content": "v=spf1 include:mailgun.org ~all", 12 | "ttl": 3600 13 | }, 14 | { 15 | "name": "email", 16 | "type": "CNAME", 17 | "content": "mailgun.org", 18 | "ttl": 3600 19 | }, 20 | { 21 | "type": "MX", 22 | "content": "mxa.mailgun.org", 23 | "prio": 10, 24 | "ttl": 3600 25 | }, 26 | { 27 | "type": "MX", 28 | "content": "mxb.mailgun.org", 29 | "prio": 10, 30 | "ttl": 3600 31 | } 32 | ] 33 | } 34 | -------------------------------------------------------------------------------- /services/mailgun/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/mailgun/logo.png -------------------------------------------------------------------------------- /services/mailgun/readme.md: -------------------------------------------------------------------------------- 1 | [Mailgun](http://mailgun.com) is a set of powerful APIs that allow you to send, receive and track email effortlessly. 2 | -------------------------------------------------------------------------------- /services/netlify/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "netlify", 4 | "label": "Netlify", 5 | "description": "The premium hosting service for modern static websites.", 6 | "category": "hosting" 7 | }, 8 | "fields": [ 9 | { 10 | "name": "site", 11 | "label": "Netlify Site Name", 12 | "description": "Your site name is part of your Netlify URL, for example: in yoursite.netlify.app the app name is yoursite", 13 | "append": ".netlify.app", 14 | "example": "yoursite" 15 | } 16 | ], 17 | "records": [ 18 | { 19 | "type": "ALIAS", 20 | "content": "{{site}}.netlify.app", 21 | "ttl": 3600 22 | }, 23 | { 24 | "name": "www", 25 | "type": "CNAME", 26 | "content": "{{site}}.netlify.app", 27 | "ttl": 3600 28 | } 29 | ] 30 | } 31 | -------------------------------------------------------------------------------- /services/netlify/instructions.md: -------------------------------------------------------------------------------- 1 | Enter your Netlify site name to continue. You must also add your custom domain to your Netlify site. 2 | -------------------------------------------------------------------------------- /services/netlify/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/netlify/logo.png -------------------------------------------------------------------------------- /services/netlify/readme.md: -------------------------------------------------------------------------------- 1 | Netlify builds, deploys and hosts your static site and app. 2 | 3 | Visit [Netlify](https://www.netlify.com) for details. 4 | -------------------------------------------------------------------------------- /services/office-365/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "office-365", 4 | "label": "Office 365", 5 | "description": "All the records you need for Office 365 to function.", 6 | "category": "productivity" 7 | }, 8 | "fields": [ 9 | { 10 | "name": "verification", 11 | "label": "Verification", 12 | "description": "Enter your provided TXT record for verification", 13 | "example": "MS=msXXXXXXXX" 14 | }, 15 | { 16 | "name": "mx", 17 | "label": "MX Record", 18 | "description": "Enter your provided MX record to route emails", 19 | "example": "MSxxxxxxx", 20 | "append": "mail.protection.outlook.com" 21 | } 22 | ], 23 | "records": [ 24 | { 25 | "type": "TXT", 26 | "content": "{{verification}}", 27 | "ttl": 3600 28 | }, 29 | { 30 | "type": "MX", 31 | "content": "{{mx}}.mail.protection.outlook.com", 32 | "prio": 0, 33 | "ttl": 3600 34 | }, 35 | { 36 | "type": "CNAME", 37 | "name": "autodiscover", 38 | "content": "autodiscover.outlook.com", 39 | "ttl": 3600 40 | }, 41 | { 42 | "type": "CNAME", 43 | "name": "lyncdiscover", 44 | "content": "webdir.online.lync.com", 45 | "ttl": 3600 46 | }, 47 | { 48 | "type": "CNAME", 49 | "name": "msoid", 50 | "content": "clientconfig.microsoftonline-p.net", 51 | "ttl": 3600 52 | }, 53 | { 54 | "type": "CNAME", 55 | "name": "sip", 56 | "content": "sipdir.online.lync.com", 57 | "ttl": 3600 58 | }, 59 | { 60 | "type": "CNAME", 61 | "name": "enterpriseregistration", 62 | "content": "enterpriseregistration.windows.net", 63 | "ttl": 3600 64 | }, 65 | { 66 | "type": "CNAME", 67 | "name": "enterpriseenrollment", 68 | "content": "enterpriseenrollment.manage.microsoft.com", 69 | "ttl": 3600 70 | }, 71 | { 72 | "type": "TXT", 73 | "content": "v=spf1 include:spf.protection.outlook.com -all", 74 | "ttl": 3600 75 | }, 76 | { 77 | "type": "SRV", 78 | "name": "_sip._tls", 79 | "content": "1 443 sipdir.online.lync.com.", 80 | "prio": 100, 81 | "ttl": 3600 82 | }, 83 | { 84 | "type": "SRV", 85 | "name": "_sipfederationtls._tcp", 86 | "content": "1 5061 sipfed.online.lync.com.", 87 | "prio": 100, 88 | "ttl": 3600 89 | } 90 | ] 91 | } 92 | -------------------------------------------------------------------------------- /services/office-365/instructions.md: -------------------------------------------------------------------------------- 1 | Once you've added Office 365, you must complete the setup of your custom domain with Microsoft. 2 | -------------------------------------------------------------------------------- /services/office-365/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/office-365/logo.png -------------------------------------------------------------------------------- /services/office-365/readme.md: -------------------------------------------------------------------------------- 1 | [Office 365](https://products.office.com/en-au/business/office) keeps itself up to date, so you always have the latest features of Word, Excel, PowerPoint, and more. -------------------------------------------------------------------------------- /services/page-not-found/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "404", 4 | "label": "404 Not Found Page", 5 | "description": "Will display a 404 not found page with random images or videos along with your domain name", 6 | "category": "infrastructure", 7 | "default-subdomain": "404", 8 | "subdomain-required": true 9 | }, 10 | "records": [ 11 | { 12 | "type": "CNAME", 13 | "content": "404.al", 14 | "ttl": 3600 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /services/page-not-found/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/page-not-found/logo.png -------------------------------------------------------------------------------- /services/page-not-found/readme.md: -------------------------------------------------------------------------------- 1 | [404.al](https://404.al) will display a 404 not found page with random images or videos along with your domain name. -------------------------------------------------------------------------------- /services/paperplane/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "paperplane", 4 | "label": "Paperplane.io", 5 | "deprecated": true, 6 | "description": "Radically simple static hosting.", 7 | "category": "hosting" 8 | }, 9 | "records": [ 10 | { 11 | "type": "ALIAS", 12 | "content": "proxy.paperplane.io", 13 | "ttl": 3600 14 | } 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /services/paperplane/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/paperplane/logo.png -------------------------------------------------------------------------------- /services/paperplane/readme.md: -------------------------------------------------------------------------------- 1 | [Paperplane.io](http://paperplane.io) is radically simple static hosting. Dropbox (or GitHub) in. Website out. 2 | -------------------------------------------------------------------------------- /services/platformsh/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "platformsh", 4 | "label": "Platform.sh", 5 | "description": "", 6 | "category": "hosting", 7 | "subdomain-required": true 8 | }, 9 | "fields": [ 10 | { 11 | "name": "platformshdomain", 12 | "label": "Platform.sh master domain", 13 | "description": "Domain name used by the Platform.sh master environment", 14 | "example": "master-7rqtwti-abc123.us.platformsh.site" 15 | } 16 | ], 17 | "records": [ 18 | { 19 | "name": "www", 20 | "type": "CNAME", 21 | "content": "{{platformshdomain}}", 22 | "ttl": 3600 23 | } 24 | ] 25 | } 26 | 27 | -------------------------------------------------------------------------------- /services/platformsh/instructions.md: -------------------------------------------------------------------------------- 1 | 1) Add your Platform.sh master environment URL here. 2 | 2) Log in to the Platform.sh console and add the domain name to the project. -------------------------------------------------------------------------------- /services/platformsh/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/platformsh/logo.png -------------------------------------------------------------------------------- /services/platformsh/readme.md: -------------------------------------------------------------------------------- 1 | Platform.sh is the idea-to-cloud application platform. 2 | 3 | See (Platform.sh)[https://platform.sh] for more information. -------------------------------------------------------------------------------- /services/pobox/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "pobox", 4 | "label": "Pobox", 5 | "description": "MX records to use your own domain with Pobox.com", 6 | "category": "email" 7 | }, 8 | "records": [ 9 | { 10 | "content": "mx-1.rightbox.com", 11 | "type": "MX", 12 | "ttl": 3600, 13 | "prio": 10 14 | }, 15 | { 16 | "content": "mx-2.rightbox.com", 17 | "type": "MX", 18 | "ttl": 3600, 19 | "prio": 10 20 | }, 21 | { 22 | "content": "mx-3.rightbox.com", 23 | "type": "MX", 24 | "ttl": 3600, 25 | "prio": 10 26 | } 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /services/pobox/instructions.md: -------------------------------------------------------------------------------- 1 | After adding the MX records, be sure to submit an [Add a Domain Request](http://www.pobox.com/login/mason/edit/mypobox.mhtml). 2 | -------------------------------------------------------------------------------- /services/pobox/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/pobox/logo.png -------------------------------------------------------------------------------- /services/pobox/readme.md: -------------------------------------------------------------------------------- 1 | [Pobox](http://pobox.com) Personal, Professional, Powerful Email. Pobox helps you keep your email address for life. 2 | -------------------------------------------------------------------------------- /services/postmark-dmarc/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "postmark-dmark", 4 | "label": "DMARC Reports by Postmark", 5 | "description": "The DMARC tool processes reports from major ISPs about your domain's DMARC alignment and turn them into beautiful, human-readable weekly email digests, absolutely free.", 6 | "category": "email", 7 | "subdomain-required": false 8 | }, 9 | "fields": [ 10 | { 11 | "name": "dmarc_value", 12 | "label": "DMARC Value", 13 | "description": "The TXT record value provided to you in the DMARC setup process.", 14 | "example": "v=DMARC1; p=none; pct=100; rua=mailto:re+asdfasdf5zi@dmarc.postmarkapp.com; sp=none; aspf=r;" 15 | } 16 | ], 17 | "records": [ 18 | { 19 | "type": "TXT", 20 | "name": "_dmarc", 21 | "content": "{{dmarc_value}}", 22 | "ttl": 3600 23 | } 24 | ] 25 | } 26 | 27 | -------------------------------------------------------------------------------- /services/postmark-dmarc/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/postmark-dmarc/logo.png -------------------------------------------------------------------------------- /services/postmark-dmarc/readme.md: -------------------------------------------------------------------------------- 1 | [DMARC Reports by Postmark](https://dmarc.postmarkapp.com) will process reports from major ISPs about your domain's DMARC alignment and turn them into beautiful, human-readable weekly email digests, absolutely free. -------------------------------------------------------------------------------- /services/postmark/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "postmark", 4 | "label": "Postmark", 5 | "description": "Postmark is a transactional email service to enable your app to reliably send and receive email.", 6 | "category": "email", 7 | "subdomain-required": false 8 | }, 9 | "fields": [ 10 | { 11 | "name": "dkim_hostname", 12 | "label": "DKIM Hostname", 13 | "description": "The value from the DKIM 'Hostname' column in your DNS Settings for this domain.", 14 | "example": "20180101160548pm._domainkey" 15 | }, 16 | { 17 | "name": "dkim_value", 18 | "label": "DKIM Value", 19 | "description": "The value from the DKIM 'Add this value' column in your DNS Settings for this domain.", 20 | "example": "k=rsa;p=MIGgMA0GCSqSGIb3DQeBAQUAA4GNADCBiQKBgbCEJ8na8ejciQNjjV0rIOoYrSCMl+EWMkHgWMYQDy3AzQBKsmORtBYD/YosuyacHg0o0NSjzCBfVZqQ5koCuzK8dGg4t3/KoRy9GwIDAQADL8eF4C4pP/dJQF2R5vHELTfAF7q6aEOr9Y8FhPZG4XjUvv42ZR9ewnEvMF5M3vz/W1c/S5dB" 21 | }, 22 | { 23 | "name": "inbound_subdomain", 24 | "label": "Inbound Subdomain", 25 | "description": "Your desired subdomain to use for inbound email addresses. You may also use a 'wildcard' inbound domain by specifying '*' as your inbound subdomain.", 26 | "example": "inbound" 27 | } 28 | ], 29 | "records": [ 30 | { 31 | "name": "{{dkim_hostname}}", 32 | "type": "TXT", 33 | "content": "{{dkim_value}}", 34 | "ttl": 3600 35 | }, 36 | { 37 | "name": "pm-bounces", 38 | "type": "CNAME", 39 | "content": "pm.mtasv.net", 40 | "ttl": 3600 41 | }, 42 | { 43 | "name": "{{inbound_subdomain}}", 44 | "type": "MX", 45 | "content": "inbound.postmarkapp.com", 46 | "ttl": 3600, 47 | "prio": 10 48 | } 49 | ] 50 | } 51 | 52 | -------------------------------------------------------------------------------- /services/postmark/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/postmark/logo.png -------------------------------------------------------------------------------- /services/postmark/readme.md: -------------------------------------------------------------------------------- 1 | [Postmark](https://postmarkapp.com) is a transactional email service to enable your app to reliably send and receive transactional email with your application. -------------------------------------------------------------------------------- /services/rackspace-email/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "rackspace-email", 4 | "label": "Rackspace Email", 5 | "description": "Rackspace Email provides managed email hosting services including hosted Microsoft Exchange.", 6 | "category": "email" 7 | }, 8 | "records": [ 9 | { 10 | "name": "autodiscover", 11 | "type": "CNAME", 12 | "content": "autodiscover.emailsrvr.com", 13 | "ttl": 86400 14 | }, 15 | { 16 | "type": "MX", 17 | "content": "mx1.emailsrvr.com", 18 | "prio": 10, 19 | "ttl": 3600 20 | }, 21 | { 22 | "type": "MX", 23 | "content": "mx2.emailsrvr.com", 24 | "prio": 20, 25 | "ttl": 3600 26 | } 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /services/rackspace-email/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/rackspace-email/logo.png -------------------------------------------------------------------------------- /services/rackspace-email/readme.md: -------------------------------------------------------------------------------- 1 | [Rackspace Email](http://www.rackspace.com/email-hosting) provides managed email hosting services including hosted Microsoft Exchange. 2 | -------------------------------------------------------------------------------- /services/roon/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "roon", 4 | "label": "Roon", 5 | "description": "The easiest way to blog.", 6 | "deprecated": true 7 | }, 8 | "fields": [ 9 | { 10 | "name": "username", 11 | "description": "Your Roon username" 12 | } 13 | ], 14 | "records": [ 15 | { 16 | "name": "", 17 | "type": "ALIAS", 18 | "content": "{{username}}.roon.io", 19 | "ttl": 3600 20 | } 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /services/roon/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/roon/logo.png -------------------------------------------------------------------------------- /services/roon/readme.md: -------------------------------------------------------------------------------- 1 | [Roon](http://roon.io) is the easiest way to blog. It's free, beautiful & cross-platform. 2 | -------------------------------------------------------------------------------- /services/shopify/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "shopify", 4 | "label": "Shopify", 5 | "description": "Use Shopify to create your online store.", 6 | "category": "ecommerce" 7 | }, 8 | "records": [ 9 | { 10 | "type": "A", 11 | "content": "23.227.38.65", 12 | "ttl": 3600 13 | }, 14 | { 15 | "name": "www", 16 | "type": "CNAME", 17 | "content": "shops.myshopify.com", 18 | "ttl": 3600 19 | } 20 | ] 21 | } 22 | 23 | -------------------------------------------------------------------------------- /services/shopify/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/shopify/logo.png -------------------------------------------------------------------------------- /services/shopify/readme.md: -------------------------------------------------------------------------------- 1 | Use Shopify to create your online store. 2 | -------------------------------------------------------------------------------- /services/simplybuilt/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "simplybuilt", 4 | "label": "SimplyBuilt", 5 | "description": "Build a professional website that looks great on all devices.", 6 | "category": "hosting", 7 | "deprecated": true 8 | }, 9 | "fields": [ 10 | 11 | ], 12 | "records": [ 13 | { 14 | "name": "www", 15 | "type": "CNAME", 16 | "content": "sites.onsimplybuilt.com", 17 | "ttl": 3600 18 | }, 19 | { 20 | "name": "", 21 | "type": "URL", 22 | "content": "http://www.{{domain}}", 23 | "ttl": 3600 24 | } 25 | ] 26 | } 27 | 28 | -------------------------------------------------------------------------------- /services/simplybuilt/instructions.md: -------------------------------------------------------------------------------- 1 | After adding this service, you'll need to configure your SimplyBuilt site to [use this custom domain](https://support.simplybuilt.com/set-site-details/set-your-site-address) (www.yourdomain.com). 2 | 3 | If you have any problems or questions, reach out to us via [email](mailto:support@simplybuilt.com), [SimplyBuilt's Neighborhood](http://neighborhood.simplybuilt.com), or on Twitter [@SimplyBuilt](https://twitter.com/simplybuilt). -------------------------------------------------------------------------------- /services/simplybuilt/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/simplybuilt/logo.png -------------------------------------------------------------------------------- /services/simplybuilt/readme.md: -------------------------------------------------------------------------------- 1 | Create a website in a matter of minutes with our easy-to-use interface, and just as quickly keep it up-to-date with your latest content using [SimplyBuilt](http://www.simplybuilt.com). -------------------------------------------------------------------------------- /services/squarespace/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "squarespace", 4 | "label": "Squarespace", 5 | "description": "Managed environment for creating and maintaining a beautiful website, blog, or portfolio.", 6 | "category": "ecommerce" 7 | }, 8 | "fields": [ 9 | { 10 | "name": "verification", 11 | "label": "Verification Code", 12 | "description": "Enter your unique verification code under the column Host in Squarespace", 13 | "example": "123abc456def" 14 | } 15 | ], 16 | "records": [ 17 | { 18 | "type": "ALIAS", 19 | "content": "ext-cust.squarespace.com", 20 | "ttl": 3600 21 | }, 22 | { 23 | "type": "CNAME", 24 | "name": "www", 25 | "content": "ext-cust.squarespace.com", 26 | "ttl": 3600 27 | }, 28 | { 29 | "type": "CNAME", 30 | "name": "{{verification}}", 31 | "content": "verify.squarespace.com", 32 | "ttl": 3600 33 | } 34 | ] 35 | } 36 | 37 | -------------------------------------------------------------------------------- /services/squarespace/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/squarespace/logo.png -------------------------------------------------------------------------------- /services/squarespace/readme.md: -------------------------------------------------------------------------------- 1 | Create your own space with [Squarespace](http://www.squarespace.com). 2 | -------------------------------------------------------------------------------- /services/squarespace6/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "deprecated": true, 4 | "name": "squarespace6", 5 | "label": "Squarespace 6", 6 | "description": "Managed environment for creating and maintaining a beautiful website, blog, or portfolio. (Version 6)", 7 | "default-subdomain": "www", 8 | "category": "ecommerce" 9 | }, 10 | "records": [ 11 | { 12 | "type": "CNAME", 13 | "content": "ext.squarespace.com", 14 | "ttl": 3600 15 | } 16 | ] 17 | } 18 | 19 | 20 | -------------------------------------------------------------------------------- /services/squarespace6/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/squarespace6/logo.png -------------------------------------------------------------------------------- /services/squarespace6/readme.md: -------------------------------------------------------------------------------- 1 | Create your own space with [Squarespace](http://www.squarespace.com). 2 | -------------------------------------------------------------------------------- /services/supadupa/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "supadupa", 4 | "label": "SupaDupa", 5 | "description": "An e-commerce platform to easily create a stunning online store.", 6 | "default-subdomain": "www", 7 | "category": "ecommerce" 8 | }, 9 | "records": [ 10 | { 11 | "type": "CNAME", 12 | "content": "mysupadupa.com", 13 | "ttl": 3600 14 | } 15 | ] 16 | } 17 | 18 | 19 | -------------------------------------------------------------------------------- /services/supadupa/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/supadupa/logo.png -------------------------------------------------------------------------------- /services/supadupa/readme.md: -------------------------------------------------------------------------------- 1 | [SupaDupa](http://supadupa.me) helps you set up your own professional online store without any of the skills or upfront commitments required when hiring a web agency to build one for you. 2 | -------------------------------------------------------------------------------- /services/surge/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "surge", 4 | "label": "Surge", 5 | "description": "Static web publishing for Front-End Developers", 6 | "category": "hosting" 7 | }, 8 | "records": [ 9 | { 10 | "name": "@", 11 | "type": "ALIAS", 12 | "content": "na-west1.surge.sh", 13 | "ttl": 3600 14 | }, 15 | { 16 | "name": "*", 17 | "type": "CNAME", 18 | "content": "na-west1.surge.sh", 19 | "ttl": 3600 20 | } 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /services/surge/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/surge/logo.png -------------------------------------------------------------------------------- /services/surge/readme.md: -------------------------------------------------------------------------------- 1 | [Surge](http://surge.sh) is static web publishing for Front-End Developers. Simple, single-command web publishing. Publish HTML, CSS, and JS for free, without leaving the command line. 2 | -------------------------------------------------------------------------------- /services/tender/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "tender", 4 | "label": "Tender", 5 | "description": "Use Tender for your customer support", 6 | "category": "productivity" 7 | }, 8 | "records": [ 9 | { 10 | "name": "support", 11 | "type": "CNAME", 12 | "content": "tenderapp.com", 13 | "ttl": 3600 14 | }, 15 | { 16 | "name": "help", 17 | "type": "URL", 18 | "content": "http://support.{{domain}}", 19 | "ttl": 3600 20 | } 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /services/tender/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/tender/logo.png -------------------------------------------------------------------------------- /services/tender/readme.md: -------------------------------------------------------------------------------- 1 | [Tender Support](http://tenderapp.com) organizes your customer care so you can focus on delivering the best service possible. 2 | -------------------------------------------------------------------------------- /services/tumblr/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "tumblr", 4 | "label": "Tumblr", 5 | "description": "Use Tumblr for your blog.", 6 | "default-subdomain": "blog", 7 | "category": "blogging" 8 | }, 9 | "records": [ 10 | { 11 | "type": "CNAME", 12 | "content": "domains.tumblr.com", 13 | "ttl": 3600 14 | } 15 | ] 16 | } 17 | 18 | 19 | -------------------------------------------------------------------------------- /services/tumblr/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/tumblr/logo.png -------------------------------------------------------------------------------- /services/tumblr/readme.md: -------------------------------------------------------------------------------- 1 | With [tumblr](https://www.tumblr.com), share things you love. 2 | -------------------------------------------------------------------------------- /services/urlforward/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "urlforward", 4 | "label": "URL Forwarding", 5 | "description": "Forward all of the web traffic for your domain with one click", 6 | "category": "infrastructure" 7 | }, 8 | "fields": [ 9 | { 10 | "name": "url", 11 | "label": "URL to forward to", 12 | "description": "The full URL of the site to forward to. For example: http://example.com or https://example.com", 13 | "example": "http://example.com" 14 | } 15 | ], 16 | "records": [ 17 | { 18 | "name": "", 19 | "type": "URL", 20 | "content": "{{url}}", 21 | "ttl": 3600 22 | }, 23 | { 24 | "name": "www", 25 | "type": "URL", 26 | "content": "{{url}}", 27 | "ttl": 3600 28 | } 29 | ] 30 | } 31 | 32 | -------------------------------------------------------------------------------- /services/urlforward/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/urlforward/logo.png -------------------------------------------------------------------------------- /services/urlforward/readme.md: -------------------------------------------------------------------------------- 1 | Quickly forward all web traffic from your domain to another URL. 2 | -------------------------------------------------------------------------------- /services/webflow/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "webflow", 4 | "label": "Webflow", 5 | "description": "Webflow is a responsive web design tool, CMS, and hosting platform.", 6 | "category": "hosting" 7 | }, 8 | "fields": [ 9 | { 10 | "name": "first_record", 11 | "label": "A Record", 12 | "description": "Use the value for the first A record from your Webflow hosting tab." 13 | }, 14 | { 15 | "name": "second_record", 16 | "label": "A Record", 17 | "description": "Use the value for the second A record from your Webflow hosting tab." 18 | }, 19 | { 20 | "name": "cname_record", 21 | "label": "CNAME Record", 22 | "description": "Use the value for the CNAME record from your Webflow hosting tab." 23 | } 24 | ], 25 | "records": [ 26 | { 27 | "type": "A", 28 | "name": "", 29 | "content": "{{first_record}}", 30 | "ttl": 3600 31 | }, 32 | { 33 | "type": "A", 34 | "name": "", 35 | "content": "{{second_record}}", 36 | "ttl": 3600 37 | }, 38 | { 39 | "name": "www", 40 | "type": "CNAME", 41 | "content": "{{cname_record}}", 42 | "ttl": 3600 43 | } 44 | ] 45 | } 46 | 47 | -------------------------------------------------------------------------------- /services/webflow/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/webflow/logo.png -------------------------------------------------------------------------------- /services/webflow/readme.md: -------------------------------------------------------------------------------- 1 | [Webflow](http://www.webflow.com) is a responsive web design tool, CMS, and hosting platform. 2 | -------------------------------------------------------------------------------- /services/weebly/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "weebly", 4 | "label": "Weebly", 5 | "description": "Everything you need to create a high-quality site.", 6 | "category": "hosting" 7 | }, 8 | "records": [ 9 | { 10 | "type": "A", 11 | "content": "199.34.228.59", 12 | "ttl": 3600 13 | }, 14 | { 15 | "name": "www", 16 | "type": "A", 17 | "content": "199.34.228.59", 18 | "ttl": 3600 19 | } 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /services/weebly/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/weebly/logo.png -------------------------------------------------------------------------------- /services/weebly/readme.md: -------------------------------------------------------------------------------- 1 | [Weebly](http://www.weebly.com) gives millions of people a surprisingly easy and affordable way to create a site that is as unique as they are. With a Weebly site, people can start their own business, communicate with their clients, showcase their achievements, and be an authority on personal and professional interests. 2 | 3 | Weebly gives everyone the freedom to start a site, blog or online store that works brilliantly across computers, phones and tablets. 4 | -------------------------------------------------------------------------------- /services/windows-azure/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "windows-azure", 4 | "label": "Windows Azure", 5 | "description": "Build, deploy and manage applications across a global network of Microsoft-managed datacenters.", 6 | "category": "infrastructure" 7 | }, 8 | "fields": [ 9 | { 10 | "name": "site", 11 | "description": "Subdomain for your Azure site" 12 | } 13 | ], 14 | "records": [ 15 | { 16 | "type": "ALIAS", 17 | "content": "{{site}}.azurewebsites.net", 18 | "ttl": 3600 19 | }, 20 | { 21 | "name": "awverify", 22 | "type": "CNAME", 23 | "content": "awverify.{{site}}.azurewebsites.net", 24 | "ttl": 3600 25 | } 26 | ] 27 | } 28 | -------------------------------------------------------------------------------- /services/windows-azure/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/windows-azure/logo.png -------------------------------------------------------------------------------- /services/windows-azure/readme.md: -------------------------------------------------------------------------------- 1 | [Windows Azure](https://www.windowsazure.com) is an open and flexible cloud platform that enables you to quickly build, deploy and manage applications across a global network of Microsoft-managed datacenters. 2 | -------------------------------------------------------------------------------- /services/wordpress/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "name": "wordpress", 4 | "label": "WordPress", 5 | "description": "Share with the world, your community, or your closest friends.", 6 | "default-subdomain": "blog", 7 | "category": "hosting" 8 | }, 9 | "fields": [ 10 | { 11 | "name": "site", 12 | "description": "Your Wordpress.com subdomain" 13 | } 14 | ], 15 | "records": [ 16 | { 17 | "type": "CNAME", 18 | "content": "{{site}}.wordpress.com", 19 | "ttl": 3600 20 | } 21 | ] 22 | } 23 | 24 | -------------------------------------------------------------------------------- /services/wordpress/instructions.md: -------------------------------------------------------------------------------- 1 | Once you've added this service, make sure to go your Wordpress account and purchase the custom domain add-on. 2 | -------------------------------------------------------------------------------- /services/wordpress/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnsimple/dnsimple-services/559fa38c0da09b3237be06050a33fca25fae650b/services/wordpress/logo.png -------------------------------------------------------------------------------- /services/wordpress/readme.md: -------------------------------------------------------------------------------- 1 | [WordPress](http://wordpress.com) lets you share with the world, your community, or your closest friends. 2 | --------------------------------------------------------------------------------