Self hosted instances of PentestPad are managed within our private Docker repository.
What you will need?
Please check our Requirements article.
Authentication
First, you need to authenticate to the repository using credentials provided by PentestPad team. Run this command from the machine you plan to use to host your instance.
docker login repository.pentestpad.net
It will ask you for username and password.
Clone the configuration repository
After authenticating, you can clone the configuration repository using following command:
git clone https://github.com/PentestPad/pentestpad-docker
Set License Key
Navigate to the cloned repository folder (pentestpad-docker) and edit the .env
file with your favorite text editor. Populate the LICENSE_KEY
variable with your license key.
LICENSE_KEY=ey...
(Optional) Edit environment variables
Navigate to the cloned repository folder (pentestpad-docker) and edit the .env
file with your favorite text editor. You will probably want to modify the following environment variables:
APP_URL
- Full URL where application can be accessed by, for examplehttps://pentestpad.internal.test
DB_PASSWORD
- password you wish to use for PostgreSQL server.
Admin account information:
ADMIN_NAME
- Name of the admin userADMIN_EMAIL
- Admin's email addressADMIN_PASSWORD
- Admin's password
Email delivery:
MAIL_MAILER
- This can besmtp
ormailgun
MAIL_HOST
- Hostname of the SMTP serverMAIL_PORT
- Port for the SMTP serverMAIL_USERNAME
- SMTP usernameMAIL_PASSWORD
- SMTP passwordMAIL_FROM_ADDRESS
- Email address to use for delivery of emails
If you are using mailgun, you will need to define following variables:
MAILGUN_DOMAIN
- Domain used for sending emails.MAILGUN_SECRET
- Secret used for sending emails.MAILGUN_ENDPOINT
- Mailgun endpoint
Run the instance
After you have edited the .env
file, you can start the instance using following command:
docker-compose -f docker-compose.yml up --build
This will expose port 443 and application will be accessible that way.