9e4286a548
Currently container startup will ignore any errors, which will tend to leave things in a broken state if operations like migrations or certificate provisioning fail. Prefer to terminate the container rather than try to limp on. |
||
---|---|---|
.. | ||
default_ssl.conf | ||
default.conf | ||
entrypoint.sh | ||
README.md | ||
supervisord.conf | ||
www.conf |
Pterodactyl Panel - Docker Image
This is a ready to use docker image for the panel.
Requirements
This docker image requires some additional software to function. The software can either be provided in other containers (see the docker-compose.yml as an example) or as existing instances.
A mysql database is required. We recommend the stock MariaDB Image image if you prefer to run it in a docker container. As a non-containerized option we recommend mariadb.
A caching software is required as well. We recommend the stock Redis Image image. You can choose any of the supported options.
You can provide additional settings using a custom .env
file or by setting the appropriate environment variables in the docker-compose file.
Setup
Start the docker container and the required dependencies (either provide existing ones or start containers as well, see the docker-compose.yml file as an example).
After the startup is complete you'll need to create a user. If you are running the docker container without docker-compose, use:
docker exec -it <container id> php artisan p:user:make
If you are using docker compose use
docker-compose exec panel php artisan p:user:make
Environment Variables
There are multiple environment variables to configure the panel when not providing your own .env
file, see the following table for details on each available option.
Note: If your APP_URL
starts with https://
you need to provide an LETSENCRYPT_EMAIL
as well so Certificates can be generated.
Variable | Description | Required |
---|---|---|
APP_URL |
The URL the panel will be reachable with (including protocol) | yes |
APP_TIMEZONE |
The timezone to use for the panel | yes |
LETSENCRYPT_EMAIL |
The email used for letsencrypt certificate generation | yes |
DB_HOST |
The host of the mysql instance | yes |
DB_PORT |
The port of the mysql instance | yes |
DB_DATABASE |
The name of the mysql database | yes |
DB_USERNAME |
The mysql user | yes |
DB_PASSWORD |
The mysql password for the specified user | yes |
CACHE_DRIVER |
The cache driver (see Cache drivers for detais) | yes |
SESSION_DRIVER |
yes | |
QUEUE_DRIVER |
yes | |
REDIS_HOST |
The hostname or IP address of the redis database | yes |
REDIS_PASSWORD |
The password used to secure the redis database | maybe |
REDIS_PORT |
The port the redis database is using on the host | maybe |
MAIL_DRIVER |
The email driver (see Mail drivers for details) | yes |
MAIL_FROM |
The email that should be used as the sender email | yes |
MAIL_HOST |
The host of your mail driver instance | maybe |
MAIL_PORT |
The port of your mail driver instance | maybe |
MAIL_USERNAME |
The username for your mail driver | maybe |
MAIL_PASSWORD |
The password for your mail driver | maybe |
Cache drivers
You can choose between different cache drivers depending on what you prefer. We recommend redis when using docker as it can be started in a container easily.
Driver | Description | Required variables |
---|---|---|
redis | host where redis is running | REDIS_HOST |
redis | port redis is running on | REDIS_PORT |
redis | redis database password | REDIS_PASSWORD |
Mail drivers
You can choose between different mail drivers according to your needs.
Every driver requires MAIL_FROM
to be set.
Driver | Description | Required variables |
---|---|---|
uses the installed php mail | ||
mandrill | Mandrill | MAIL_USERNAME |
postmark | Postmark | MAIL_USERNAME |
mailgun | Mailgun | MAIL_USERNAME , MAIL_HOST |
smtp | Any SMTP server can be configured | MAIL_USERNAME , MAIL_HOST , MAIL_PASSWORD , MAIL_PORT |