Installation

Welcome to the DejaCode installation guide! This guide explains how to install DejaCode on various platforms. Please follow the instructions carefully for a smooth installation experience.

There are three ways to run DejaCode:

  • Run with Dockersimplest option, no repository checkout or build step required. Uses the pre-built Docker image published on GitHub.

  • Enterprise deployment — same pre-built image with custom nginx configuration, domain settings, and hardware recommendations for production servers.

  • Local development installation — Docker-based setup for contributors.

Run with Docker

This is the simplest way to get DejaCode running. You only need Docker — no repository checkout, no build step required.

1. Get Docker

Download and install Docker on your platform: Get Docker.

2. Run the installer

Run the one-liner installer:

curl -sSL https://raw.githubusercontent.com/aboutcode-org/dejacode/main/install.sh | bash

This script will:

  • Create ~/.dejacode/ as the installation directory

  • Download compose.yml, docker.env, the nginx configuration, and the database seed data

  • Generate .env with a secure secret key

  • Install the dejacode command in ~/.local/bin/

  • Start all services and wait until the application is ready

Note

Override the default installation directory with: DEJACODE_HOME=/path/to/dir bash install.sh

3. Create an application user

dejacode exec web ./manage.py createsuperuser

Follow the prompt instructions, providing the required information:

  • Username: Choose a unique username.

  • Email Address: Provide a valid email address.

  • Strong Password: Create a password following security guidelines.

4. Access the application

Congratulations!

Open a web browser and visit http://localhost/ to access the web UI.

You can sign-in with the credentials you created above.

You can move onto the Tutorials section starting with the Tutorial 1 - Your first Product.

Note

The pre-built image always corresponds to the most recent release and is tagged latest.

Managing your installation

The dejacode command is a thin wrapper around docker compose. All standard docker compose subcommands work directly:

dejacode up -d          # start all services in the background
dejacode down           # stop and remove containers
dejacode restart        # restart all services
dejacode ps             # show service status
dejacode logs -f        # follow all logs
dejacode logs -f web    # follow logs for a specific service
dejacode pull           # pull the latest image
dejacode exec web ./manage.py createsuperuser

To update DejaCode to the latest release:

dejacode pull && dejacode up -d

To completely remove DejaCode and all its data:

dejacode uninstall

Enterprise deployment

Enterprise deployments use the same pre-built image as the standard install, with additional configuration for your domain, a custom nginx setup, and dedicated server hardware.

1. Install

Follow the Run with Docker steps. Once the stack is running, continue below to adapt it for production.

2. Configure your domain

Edit ~/.dejacode/.env and update the following settings to match your server’s hostname or IP:

ALLOWED_HOSTS=dejacode.example.com
CSRF_TRUSTED_ORIGINS=https://dejacode.example.com

Restart the stack to apply:

dejacode restart

3. Configure nginx

The default nginx configuration embedded in compose.yml is suitable for local use. For production, replace it with your own configuration file.

The installer downloads a default nginx configuration to ~/.dejacode/etc/nginx/conf.d/default.conf. Replace it with your own configuration (TLS termination, custom headers, upstream settings, etc.) and restart:

dejacode down && dejacode up -d

4. AboutCode integrations

Upon initialization, the nexB reference Dataspace is created with a default set of data, including license and organization libraries.

AboutCode integrations are pre-configured to connect to public instances of:

Warning

For enterprise deployments it is strongly recommended to run your own instances of these services to ensure that sensitive or private data is not submitted to public endpoints.

Hardware requirements

Item

Minimum

OS

Ubuntu 24.04 LTS 64-bit server

Processor

Modern x86-64 multi-core, at least 4 physical cores

Memory

64 GB or more (ECC preferred)

Disk

2 x 500 GB SSD in RAID mirror (enterprise disk preferred)

Important

DejaCode uses all available CPUs for worker processes. Allocate at least 1 GB of memory per CPU core.

Local development installation

Note

This section is for contributors to DejaCode. The development environment runs entirely in Docker — no local Python or PostgreSQL installation required. Please refer to the Contributing guide for instructions on submitting changes.

Clone and configure

  1. Clone the DejaCode repository:

    git clone https://github.com/aboutcode-org/dejacode.git && cd dejacode
    
  2. Create an environment file:

    make envfile_dev
    

Run the app

Build the development image and start all services:

make run

The application is available at http://localhost:8000/. Source code changes are reflected immediately without restarting the container.

Note

make run is a shortcut for docker compose -f compose.dev.yml up. All standard docker compose subcommands are available directly:

docker compose -f compose.dev.yml logs -f
docker compose -f compose.dev.yml exec web ./manage.py shell
docker compose -f compose.dev.yml down

Create an application user

make superuser

Tests

make test

Warning

This setup is not suitable for deployments and is only supported for local development.