Coder powers secure, scalable development across key industries — automotive, finance, government, and technology — enabling faster builds, tighter compliance, and seamless AI adoption in enterprise-grade cloud environments.
Once installed, you can run Coder as a system service:
# Set up an external access URL or enable CODER_TUNNEL
sudo vim /etc/coder.d/coder.env
# Use systemd to start Coder now and on reboot
sudo systemctl enable --now coder
# View the logs to ensure a successful start
journalctl -u coder.service -b
docker-compose
Before proceeding, please ensure that you have both Docker and the latest version of
Coder installed.
Navigate into the coder folder and run docker-compose up:
cd coder
# Coder will bind to localhost:7080.
# You may use localhost:7080 as your access URL
# when using Docker workspaces exclusively.
# CODER_ACCESS_URL=http://localhost:7080
# Otherwise, an internet accessible access URL
# is required.
CODER_ACCESS_URL=https://coder.mydomain.com
docker-compose up
Otherwise, you can start the service:
cd coder
docker-compose up
Alternatively, if you would like to start a temporary deployment:
Follow the on-screen instructions to create your first template and workspace
If the user is not in the Docker group, you will see the following error:
Error: Error pinging Docker server: Got permission denied while trying to connect to the Docker daemon socket
The default docker socket only permits connections from root or members of the docker
group. Remedy like this:
# replace "coder" with user running coderd
sudo usermod -aG docker coder
grep /etc/group -e "docker"
sudo systemctl restart coder.service
Manual
We publish self-contained .zip and .tar.gz archives in GitHub releases. The archives bundle coder binary.
Download the release archive appropriate for your operating system
Unzip the folder you just downloaded, and move the coder executable to a location that's on your PATH
# ex. MacOS and Linux
mv coder /usr/local/bin
Windows users: see this guide for adding folders to PATH.
Start a Coder server
# Automatically sets up an external access URL on *.try.coder.app
coder server --tunnel
# Requires a PostgreSQL instance and external access URL
coder server --postgres-url <url> --access-url <url>