HTTPS domains for localhost. 🏠
Alternatives To Localdots
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
15 days ago42mitPHP
A modern Docker LAMP stack and MEAN stack for local development
Https Portal4,073
2 months ago31mitRuby
A fully automated HTTPS server powered by Nginx, Let's Encrypt and Docker.
Symfony Docker1,834
4 days agoJuly 14, 202213Dockerfile
A Docker-based installer and runtime for Symfony. Install: download and `docker compose up`.
2 years ago7mitC
A post exploitation framework designed to operate covertly on heavily monitored environments
a month ago26mitJavaScript
Hellodjango Blog Tutorial909
2 years ago11gpl-3.0Python
免费带你学 django 全栈!基于 django 2.2 的个人博客,初学者绝对不能错过的 django 教程!。◕ᴗ◕。
Aria2 Ariang Docker869
3 months ago7apache-2.0Shell
The Docker image for Aria2 + AriaNg + File Browser + Rclone
Wordpress Nginx Docker Compose694
2 months ago7CSS
Run WordPress with nginx using Docker Compose.
2 years ago18Shell
Docker Swarm mode rocks! Ideas, tools and recipes. Get a production-ready, distributed, HTTPS served, cluster in minutes, not weeks.
Docker Phpldapadmin640
2 years ago51mitShell
A docker image to run phpLDAPadmin 🐳
Alternatives To Localdots
Select To Compare

Alternative Project Comparisons

Docker Cloud Build Status

localdots — HTTPS domains for localhost

Inspired by https://smallstep.com/blog/step-v0-8-6-valid-https-certificates-for-dev-pre-prod/


⚠️ This tool installs a root CA in your system. Use it only if you know what you are doing.

Also Important

As the title says, this tool is to be used for development. It is not meant to run at production and it hasn't been tested in CI environments either.

Please help report any issues!


localdots combines Caddy and smallstep/certificates with automated configuration and hot reload.

  • Generates SSL/TLS certificates automatically
  • Reloads Caddy automatically with every change


# docker-compose.yaml

version: "3"

    image: rnbw/localdots
      - 80:80 # for http->https redirection
      - 443:443
      # contains all vhost files
      - ./caddy.d:/caddy.d:ro
      # contains CA config and certs
      - ~/.caroot:/caroot
    # only needed for *.localhost domains
      - "whoami.localhost:"

  # example containers
    image: jwilder/whoami
    image: nginxdemos/hello
# ./caddy.d/whoami.localhost
whoami.localhost {
  proxy / whoami:8000

# ./caddy.d/hello.dev
hello.dev {
  proxy / hello
# run all the things
docker-compose up -d

# add the domains to your /etc/hosts file
# *.localhost domains shouldn't need to be added for typical use cases  hello.dev

# after localdots container is up and running,
# you will see a .caroot directory in your $HOME.
brew install step \
    && step certificate install ~/.caroot/certs/root_ca.crt

# that's it, try open the sites configured above
open https://whoami.localhost
open https://hello.dev

About domains

Using special TLDs

When picking a TLD for local development, you can use one of the special domain names suggested in RFC6761, such as test or localhost.

localhost has, by spec, the following particularities:

1.  Users are free to use localhost names as they would any other
    domain names.  Users may assume that IPv4 and IPv6 address
    queries for localhost names will always resolve to the respective
    IP loopback address.

2.  Application software MAY recognize localhost names as special, or
    MAY pass them to name resolution APIs as they would for other
    domain names.

3.  Name resolution APIs and libraries SHOULD recognize localhost
    names as special and SHOULD always return the IP loopback address
    for address queries and negative responses for all other query
    types.  Name resolution APIs SHOULD NOT send queries for
    localhost names to their configured caching DNS server(s).

However, if you expect anything.localhost to be resolved to automatically, that might not work. For example, you can open it in Chrome and the browser will resolve it fine. But if you ping it or curl it, you'll get an error unless you add the record in your hosts file.

See https://tools.ietf.org/html/draft-west-let-localhost-be-localhost-06.

Using any TLD

Using any of the domains above, you can be sure you won't run into any conflicts. But other than that, there's no reason why you cannot use any other "registrable" domain. There are ~1600 possible TLDs you can choose from, or even invent your own!

While this can be seen as bad practice, I leave it to you. Personally I've seen several companies or dev teams using xyz, wtf, lol, dev, net, host, or even custom ones (i.e. not in the list) such as using the company name or team.

In my opinion, as long as you 1- know what you are doing, 2- don't shadow an existing domain that you or someone in your team uses (e.g. don't use gmail.com...) and 3- keep it scoped to your local development environment, then just use whatever works for you.

As with special domains, remember to add the necessary entries in your hosts file. Alternatively in this case, if you own the domain then you can always add the record in your DNS.


Bugfixes, improvements, proposals are gladly welcome!

Popular Https Projects
Popular Docker Projects
Popular Security Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Ssl Certificates
Local Development