Skip to content

Deployment

Den1al edited this page Jul 27, 2019 · 6 revisions

JSShell offers a couple of deployments methods:

  • Docker Generic badge
  • Regular

Docker Deployment

We need to make sure docker and docker-compose are installed successfully on your system. Personally, whenever I setup a new server (either local or cloud based) I use my own bootstrap snippets to automate the process. Feel free to use my docker bootstrap script - https://gist.github.com/Den1al/bcff8f968be3ed077d83fad59e06ac44. Once the script has finished, we have docker and docker-compose up and running.

It is recommended to use a custom domain, so you can enable TLS support. This might be crucial to you, since you can't load mixed content in most modern browsers. To create TLS certificates simply use the create_cert.py file inside the scripts directory. Once done, don't forget to update the config.json file with the correct selected domain.

The scripts directory contains a special file called start_docker_shell.sh which bootstraps the entire process of creating the web server and database components effortlessly (if not deployed already). When those components are successfully deployed, the shell component will be loaded, and the splash screen will be shown to you.

Regular Deployment

Although I truly recommend using docker to deploy JSShell, it is also possible to deploy it without it. Make sure you have a mongoDB database up and running. When done - update the config.json file with the corresponding data, such as the DB host, username and password. When deploying without docker, you also need to update the port in which the web server will run (usually 443, since I recommend using TLS), and the corresponding URL.

Use the manage.py file to run the webserver AND the shell itself. That scripts accepts as a parameter which component you want to run (web / shell). Make sure the web server and the database are up and running before using the shell component.

Clone this wiki locally