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 https://github.com/PKU-DAIR/open-box.git
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:
[database]
database_address=127.0.0.1
database_port=27017
user=xxxx
password=xxxx
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/settings.py#
Then, modify “openbox/artifact/artifact/settings.py” to set email information for registration service. Please fill in the following lines:
EMAIL_HOST = 'smtp.xxxx.com'
EMAIL_PORT = 465
EMAIL_HOST_USER = 'xxxx@xxxx.com'
EMAIL_HOST_PASSWORD = 'xxxx'
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
EMAIL_ACTIVE_ENABLE = False
EMAIL_HOST: SMTP host of email registration service provider. E.g., ‘smtp.gmail.com’.
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/manage_service.sh 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 manage_service.sh script by the following commands:
cd <path to the source code>/open-box
./scripts/manage_service.sh 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 http://127.0.0.1:11425/user_board/index/ (replace “127.0.0.1:11425” 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 manage_service.sh script by the following commands:
cd <path to the source code>/open-box
./scripts/manage_service.sh stop