Configuration

Now you'll be configuring Dashactyl to work effectively.

Settings.json

Settings.json has many different options that need to be changed.

Section 1 - Website Settings

{
    "version": "0.1.2",
    "defaulttheme": "default",
    "website": {
        "port": 80,
        "secret": "change this website session secret password"
    },

Version

This shows what version of Dashactyl you're using. It's important you don't change this value or you can encounter security issues.

Default Theme

On Dashactyl you're able to use different themes to spice up how it looks. If you don't have a theme downloaded you must keep the value as default.

Website Port

This is the port that the website is running on. The port you use musn't be used by another process. The port that's used must be a web suitable port like 3000 or 8000.

If you have any other port other than 80, you will have to type the port as domain:<port> An example being http://domain.com:3000

Secret

In this section you're able to write your own secret which will be used for administrator purposes. It's very important you make this long and hard to guess or people may be able to gain access to administrator settings.

Section 2 - Pterodactyl Settings

    "pterodactyl": {
        "domain": "pterodactyl panel domain",
        "key": "pterodactyl panel admin api key"
    },

Domain

The Domain is the domain that is used to access your Pterodactyl control panel. An example being: https://panel.domain.com

Key

To get a key you need to create one on your pterodactyl panel.

  1. Go to the admin area on your panel.

  2. Navigate to Application Api.

  3. Press Create Key.

  4. Tick all the boxes with "Read & Write" as seen below.

  5. Write a description for it like "Dashactyl".

  6. Press Create Credentials.

  7. Go back to the Application API.

  8. Copy the new Key and paste it in the settings.json.

Section 3 - Database

"database": "sqlite://database.sqlite",

This specifies the database that is used to save data.

Section 4 - Discord Oauth2

For this to work, you must have a Discord Application created at https://discord.com/developers/applications/ .

"api": {
        "client": {
            "oauth2": {
                "id": "discord oauth2 application id",
                "secret": "discord oauth2 application secret",
                "link": "discord oauth2 application link",
                "callbackpath": "/callback",
                "prompt": true
            },

ID

Your Discord Application ID.

Secret

The Discord Application Secret.

Link is the link of your dashactyl. For example domain.com, client.domain.com or dashacctyl.domain.com/callback. For this to work you must've set the link on the Discord Application to the same link at this link https://discord.com/developers/applications/<ID OF YOUR APPLICATION HERE>/oauth2 .

Callback Path

The callback path is the link that Discord Oauth2 redirects a user to after a user has provided access to the Application through Oauth2. You shouldn't change this unless you know what you're doing.

Prompt

Prompt is a feature where if it is enabled it will skip the oauth2 authorization screen if they've already authorized before. By default this is set as true.

Section 5 - Password Generator

"passwordgenerator": {
        "signup": false,
        "length": 8
      },

By enabling password generator, users passwords will be auto generated making a secure password.

Section 6 - Permissions

"allow": {
        "newusers": true,
        "regen": true,
        "server": {
          "create": true,
          "modify": true,
          "delete": true
        },

In this section you can modify the permissions for dashactyl. By setting a value to true, you are allowing users to do this and false will disable that feature for users.

New Users

This will allow users to sign up, setting this to false wont let any new users to sign up.

Regen

Enabling this will allow users to regen passwords for their account.

Server

Create

Allows users to create servers on your Dashactyl.

Modify

Makes users able to change their server settings such as memory, storage, cpu and name allocations.

Delete

Lets users delete their servers.

Section 7 - Over Resource Suspend

        "overresourcessuspend": false,
        "renewsuspendsystem": {
          "_comment": "This feature requires a restart in order to work. Also, this requires every server to start suspended, or else this feature would not work for some servers.",
          "enabled": false,
          "time": 3600
        }
      },

Suspends users serer if they go over their allocated resources.

Over resource suspend

If set to true user's servers will be suspended if they go over their allocated resources.

Section 8 - Rate Limits

            "ratelimits": {
                "/callback": 2,
                "/create": 1,
                "/delete": 1,
                "/modify": 1,
                "/updateinfo": 1,
                "/setplan": 2
            },

The rate limits is very important as it stops people able to spam your dashboard with requests possibly slowing down your website. It's recommended to keep the rate limits as the default values.

Section 9 - Packages

            "packages": {
                "default": "default",
                "list": {
                    "default": {
                        "ram": 1024,
                        "disk": 1024,
                        "cpu": 100,
                        "servers": 1
                    }
                }
            },

Packages adds a whole new exclusive feature where you can make users on the panel have different amount of resources depending on their package.

Making a package

Packages are easy to create, you can just copy and paste the default package bellow the default package and change the values. Here's an example:

            "packages": {
                "default": "default",
                "list": {
                    "default": {
                        "ram": 1024,
                        "disk": 1024,
                        "cpu": 100,
                        "servers": 1
                    },
                     "bronze": {
                        "ram": 2048,
                        "disk": 4000,
                        "cpu": 125,
                        "servers": 2
                    }
                }
            },

Section 10 - Location Selector

      "locations": {
        "1": {
          "name": "Location Name",

          "_comment": "Make 'package' be null to allow anyone with enough resources in their plan to create a server with this location. Also, make the 'package' variable an array, like [], with the location names with quotes to make a user be required to have a plan in order to use the package.",
          "package": null
        }
      },

Locations are used to allow users to select which location ( /node ) they want to create their server on, you can also specify in "package" what package users must have in order to use the location.

1

The id of the location

Name

The location name

Package

The package required for the location to be used by a user.

Section 11 - Eggs

            "eggs": {
                "paper": {
                    "display": "Paper",
                    "minimum": {
                        "ram": 1024,
                        "disk": 1024,
                        "cpu": 100
                    },
                    "maximum": {
                        "ram": null,
                        "disk": null,
                        "cpu": null
                    },
                    "info": {
                        "egg": 3,
                        "docker_image": "quay.io/pterodactyl/core:java",
                        "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true -jar {{SERVER_JARFILE}}",
                        "environment": {
                            "SERVER_JARFILE": "server.jar",
                            "BUILD_NUMBER": "latest"
                        },
                        "feature_limits": {
                            "databases": 1,
                            "backups": 1
                        }
                    }
                },
                "bungeecord": {
                    "display": "Bungeecord",
                    "minimum": {
                        "ram": 512,
                        "disk": 512,
                        "cpu": 75
                    },
                    "maximum": {
                        "ram": null,
                        "disk": null,
                        "cpu": null
                    },
                    "info": {
                        "egg": 1,
                        "docker_image": "quay.io/pterodactyl/core:java",
                        "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}",
                        "environment": {
                            "SERVER_JARFILE": "bungeecord.jar",
                            "BUNGEE_VERSION": "latest"
                        },
                        "feature_limits": {
                            "databases": 1,
                            "backups": 1
                        }
                    }
                }
            }
        }
    }
}

What's an egg?

Each egg is usually used to store the configuration of a specific type of game, for example: Vanilla, Spigot or Bungeecord for Minecraft.

How can I make an egg?

You must firstly make an egg on your Pterodactyl admin control panel. After that, you can follow the confugration in the settings above to fill in the information.

Section 12 - Arc.io

    "arcio": {
      "_comment": "You can make an arc.io widget on https://arc.io. You can get money using arc.io.",
      "enabled": false,
      "widgetid": "arc.io widget id here"
    }

What is arc.io?

Arc is a peer-to-peer Content Delivery Network (CDN). Add Arc's widget to your website, your users share bandwidth, we rent it, and you get paid the proceeds. You must create an account at https://arc.io to use this on dashactyl.

Enabled

This confirms you have enabled to have arc.io on your website.

Widget ID

The id of your arc.io widget, you can find this here https://portal.arc.io/installation .

Finishing Up

And that's it! You've now configured most of what's needed to use the control panel. Go in the next section to find out how to finish the set up.

Last updated

Was this helpful?