Space On-Premises Help

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

  1. Create and open an installation directory:

    mkdir -p space-on-premises && cd space-on-premises
  2. Download 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"
  3. Deploy the Docker Compose configuration:

    docker-compose -p space-on-premises up -d
  4. Wait until the deployment is completed and make sure that all Space containers are up and running:

    docker ps
  5. Open your Space On-Premises instance in a browser. The default URL is http://127.0.0.1:8084. The default administrator username is admin, the password is admin.

    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.

  6. Perform post-installation administration activities:

  7. 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 Space service configuration

  1. Stop your Space instance if it is running:

    docker-compose -p space-on-premises down -v docker-compose -p space-on-premises rm -f
  2. Open the docker-compose.yml file located in the Space installation directory.

  3. Change the default location of the Space configuration files. To do this, edit the docker-compose.yml file:

    1. Comment out the config:{} line:

      ... # config:{} ...
    2. 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 ...
  4. Run:

    docker-compose -p space-on-premises up init-configs

    After 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

  5. Edit the configuration files according to your needs.

  6. 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.

  1. Make your Space installation available for customization as described above.

  2. Stop your Space instance if it is running.

  3. Open the Space installation directory.

  4. 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"
  5. 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 } }
  6. 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.

  1. Make your Space installation available for customization as described above.

  2. Stop your Space instance if it is running.

  3. Open the Space installation directory.

  4. In the space.on-premises.conf file, modify url and altUrls 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" ] }
  5. In the packages.on-premises.conf file, modify url and altUrls for all services. For example:

    space { url = "http://1.2.3.4:8084" internalUrl = "http://space:9084" }
  6. In the vcs.on-premises.properties file, modify base.url and circlet.url.ext parameters. For example:

    base.url=http://1.2.3.4:8080 circlet.url.ext=http://1.2.3.4:8084
  7. Start Space On-Premises with the updated configuration:

    docker-compose up -d
Last modified: 21 February 2023