Docker Compose Installation
This installation type implies that you use Docker Compose to install Space On-Premises components to several Docker containers.
We recommend it as a proof-of-concept installation that lets you test and familiarize yourself with the system before using it in a production setting. Out of the box, Docker Compose installation doesn't provide any solutions that prevent data loss or ensure service stability. Before you can use it as your production environment, you should perform some additional configuration. For example, we strongly recommend that you provide Postgres, Elasticsearch, and a MinIO-compatible storage as external services.
Installation requirements
Host-machine platform: x86_64/amd64 or arm64.
Recommended host machine resources: 8 CPU cores, 12 GB memory.
Docker and Docker Compose 1.29.0 or later are installed on the host machine.
Install Space On-Premises with Docker Compose
Create and open an installation directory:
mkdir -p space-on-premises && cd space-on-premisesDownload the latest version of the
docker-compose.yml
file from https://assets.on-premises.service.jetbrains.space/. For example, if the latest version is 2023.1.1:export SPACE_RELEASE_NAME="2023.1.1" curl -O "https://assets.on-premises.service.jetbrains.space/${SPACE_RELEASE_NAME}/docker-compose.yml"Deploy the Docker Compose configuration:
docker-compose -p space-on-premises up -dWait until the deployment is completed and make sure that all Space containers are up and running:
docker psOpen your Space On-Premises instance in a browser. The default URL is
http://127.0.0.1:8084
. The default administrator username isadmin
, the password isadmin
.Space components are accessible on the following URLs:
http://127.0.0.1:8084
: Space user interface.http://127.0.0.1:8080
: VCS API.ssh://127.0.0.1:2222
: VCS SSH.http://127.0.0.1:8390
: Packages API.
Perform post-installation administration activities:
If you want to use Space on mobile clients, configure push notifications.
If you want to use Space Automation (CI/CD), configure self-hosted Automation workers. Currently, Space On-Premises doesn't support cloud Automation workers.
Once you no longer need your Space installation, clean up the context:
docker-compose -p space-on-premises down -v docker-compose -p space-on-premises rm -f
Customize your Docker Compose installation
The Docker Compose installation of Space On-Premises comes with a predefined configuration that doesn't require any changes. Nevertheless, if required, you can customize it according to your needs. It is possible to:
Customize the configuration of main Space services: Space application, VCS, Packages, and Lang-service.
Customize Space service configuration
Stop your Space instance if it is running:
docker-compose -p space-on-premises down -v docker-compose -p space-on-premises rm -fOpen the
docker-compose.yml
file located in the Space installation directory.Change the default location of the Space configuration files. To do this, edit the
docker-compose.yml
file:Comment out the
config:{}
line:... # config:{} ...Change every reference to the docker volume configuration from
config
to./config
. Namely, from:... volumes: - config:/home/init-config/config ... volumes: - config:/home/space/circlet-server-onprem/config ... volumes: - config:/home/space/git/vcs-hosting/config ... volumes: - config:/home/space/packages-server/config ... volumes: - config:/home/space/langservice-server/config ...to:
... volumes: - ./config:/home/init-config/config ... volumes: - ./config:/home/space/circlet-server-onprem/config ... volumes: - ./config:/home/space/git/vcs-hosting/config ... volumes: - ./config:/home/space/packages-server/config ... volumes: - ./config:/home/space/langservice-server/config ...
Run:
docker-compose -p space-on-premises up init-configsAfter this, the following configuration files will appear in the
{Space-install-folder/config}
folder:langservice.on-premises.conf
packages.on-premises.conf
space.on-premises.conf
vcs.on-premises.properties
Edit the configuration files according to your needs.
Start Space On-Premises with the updated configuration:
docker-compose -p space-on-premises up -d
Enable mail server
The Docker Compose installation comes without a preconfigured mail server. This means that Space won't be able to send any emails like user invitations, chat notifications, and so on. If required, you can enable the mail server for your installation. In the instructions below we'll use the MailHog service.
Make your Space installation available for customization as described above.
Stop your Space instance if it is running.
Open the Space installation directory.
In the
docker-compose.yml
file, add the mail server configuration:services: mailhog: image: mailhog/mailhog ports: - 1025:1025 # SMTP server port - 8025:8025 # UI port networks: - "frontend"Open the
space.on-premises.conf
file and modify the mail configuration according to your requirements:mail { outgoing { enabled = true // protocol settings fromAddress = "space@space.example.com" host = "mailhog" port = 1025 protocol = "SMTP" // "SSL" and "TLS" are also supported login = "space" password = "space" messageQueuePrefix = "mailQueue" // handling properties aggregationDelaySecs = 900 rateLimitPerSecond = 3 } }Start Space On-Premises with the updated configuration:
docker-compose up -d
Change Space base URLs
By default, Docker Compose installation uses 127.0.0.1
and localhost
as the base URLs. This configuration works well only if you run Space locally. If you want to run Space on a separate machine and make it available in your network, you must modify the base URLs.
Make your Space installation available for customization as described above.
Stop your Space instance if it is running.
Open the Space installation directory.
In the
space.on-premises.conf
file, modifyurl
andaltUrls
for all services. For example:frontend { url = "http://1.2.3.4:8084" internalUrl = "http://space:9084" altUrls = [ "http://127.0.0.1:8084", "http://localhost:8084", "http://1.2.3.4:8084" ] }In the
packages.on-premises.conf
file, modifyurl
andaltUrls
for all services. For example:space { url = "http://1.2.3.4:8084" internalUrl = "http://space:9084" }In the
vcs.on-premises.properties
file, modifybase.url
andcirclet.url.ext
parameters. For example:base.url=http://1.2.3.4:8080 circlet.url.ext=http://1.2.3.4:8084Start Space On-Premises with the updated configuration:
docker-compose up -d