OpenBox Service Deployment#

This tutorial helps you deploy an OpenBox service. If you are an OpenBox service user, please refer to the Service User Tutorial.

1 Install OpenBox from Source#

Installation Requirements:

  • Python >= 3.8

  • SWIG == 3.0

To install SWIG, please refer to SWIG Installation Guide.

Make sure that SWIG is installed correctly installing OpenBox.

Then we recommend you to update your pip, setuptools and wheel as follows:

pip install --upgrade pip setuptools wheel

Next, clone the source code to the server where you want to deploy OpenBox service, and install OpenBox from source code. The commands are as follows:

git clone
cd open-box
pip install ".[service]"

2 Initialize MongoDB#

OpenBox uses MongoDB to store user and task information.

2.1 Install and Run MongoDB#

Please install and run MongoDB before running OpenBox service. For MongoDB installation guides, refer to the following links:

You need to create a MongoDB user and set auth=true when starting MongoDB. Please record the IP and port of your database.

2.2 Modify service.conf File#

After starting MongoDB, modify “open-box/conf/service.conf” to set database information. If this is your first time running the service, create the service.conf file by copying the template config file from “open-box/conf/template/service.conf.template” to “open-box/conf/” and rename it to service.conf.

The contents of service.conf are as follows:


Please set database IP, port, user and password accordingly.

Caution: We have added service.conf to .gitignore. Do not push this file to Github to prevent the disclosure of private information.

3 Set up Email Registration Service#

3.1 Prepare an Email for Registration Service#

OpenBox requires an email address to send activation link when users register new accounts. Please enable SMTP authentication and then you may receive a secret key for authentication from the email provider.

3.2 Modify openbox/artifact/artifact/

Then, modify “openbox/artifact/artifact/” to set email information for registration service. Please fill in the following lines:

  • EMAIL_HOST: SMTP host of email registration service provider. E.g., ‘’.

  • EMAIL_PORT: SMTP port of email registration service provider. Get the port from email service provider. You may try port 25,587 or other ports if port 465 doesn’t work.

  • EMAIL_HOST_USER: Your email address for registration service.

  • EMAIL_HOST_PASSWORD: Your secret key for SMTP authentication.

  • EMAIL_ACTIVE_ENABLE: Enable or disable the mail activation function.

Caution: Do not push the file with private information to Github to prevent leakage.

4 Migrate Database#

cd <path to the source code>/open-box
./scripts/ migrate

5 Start/Stop OpenBox Service#

Finally, after setting up the database and registration service, you can start up the OpenBox service.

To start the service, run the script by the following commands:

cd <path to the source code>/open-box
./scripts/ start

The script will run OpenBox service in the background. The default service port is 11425. You can modify the script to change service port.

Then, visit (replace “” with your server ip:port) to see whether your service starts successfully. You may also try to create an account and run a task to test your OpenBox service. For more detailed guidance, please refer to the Service User Tutorial.

To stop the service, run the script by the following commands:

cd <path to the source code>/open-box
./scripts/ stop