Default ports for website projects

The local ports used when running our applications locally

Each of our website projects is configured to run on a different port by default. This port should be defined in a .env file within the project codebase, and should be between 8001 and 8999, excluding more commonly used ports like 8008.

This is so that team members can easily run multiple projects at the same time without getting port conflicts.

Defaults

Port Project
8001 www.ubuntu.com
8002 www.canonical.com
8003 partners.ubuntu.com
8004 snapcraft.io
8005 conjure-up.io
8006 maas.io
8007 docs.ubuntu.com
8008 RESERVED: Alternative HTTP port
8009 cloud-init.io
8010 cn.ubuntu.com
8011 design.ubuntu.com
8012 jp.ubuntu.com
8013 tour.ubuntu.com
8014 vanillaframework.io
8015 developer.ubuntu.com
8016 tutorials.ubuntu.com
8017 assets.ubuntu.com
8018 manager.assets.ubuntu.com
8019 community.ubuntu.com
8020 usn.ubuntu.com
8021 RESERVED: Possible use by iTunes Radio streams
8022 usn.ubuntu.com
8023 insights.ubuntu.com
8024 netplan.io
8025 360
8026 multipass.io
8027 microk8s.io
8028 mir-server.io
8029 jaas.ai
8030 docs.snapcraft.io
8031 landscape.canonical.com
8032 juju-gui
8033 docs.jujucharms.com
8034 certification.ubuntu.com
8035 kubeflow-news.com
8036 jaas-dashboard
8037 dqlite.io
8038 etclite.io
8039 microstack.io
8040 charmed-kubernetes.io
8041 juju.is
8042 charmed-osm.com
8043 anbox-cloud.io
8044 ideahub
8045 charmhub.io
8046 charmed-kubeflow.io
8066 feedourfrontline.org
8099 demoservice
8101 vanilla-framework
8102 vanilla-framework-react
8201 phone-docs
8202 snappy-docs
8203 maas-docs
8204 conjure-up-docs
8205 juju-docs
8206 security-certs-docs
8207 ubuntu-core-docs
8300 global-nav
8400, 8401, 8402, 8404 maas-ui
8403 react-components

Why use a fixed port

We could have chosen to solve the problem of port clashes by having the local development tooling choose a random open port, instead of defining a specific one.

There are a few benefits to the local development application having a predictable port:

  • Port clashes will remind developers that a specific project is already running locally
  • Developers can reliably bookmark their locally running version of specific projects, and so quickly check if a project is currently running
  • The port can reliably be mentioned in READMEs and pull request instructions
  • Any inter-linking dependent services can work together more easily if they know which local ports to connect to

However, it should be possible to choose to run any project on a different port through the standard ./run tooling:

./run serve --port 8999