> For the complete documentation index, see [llms.txt](https://josh0086.gitbook.io/dashactyl/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://josh0086.gitbook.io/dashactyl/installation/configuration.md).

# Configuration

## 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.

{% hint style="info" %}
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>
{% endhint %}

### 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.

![](/files/-MKWn0otZI-u_wBodcyd)

## Section 3 - Database

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

This specifies the database that is used to save data.&#x20;

{% hint style="warning" %}
It's highly recommended that you don't change the database unless you know what you're doing as it could cause Dashactyl to brake.
{% endhint %}

## 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

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](https://discord.com/developers/applications/769676068406951937/oauth2) .

{% hint style="danger" %}
You must include /callback at the end of the link in settings.json and on the Discord application. If you've changed the callbackpath in settings.json you must put what yu've entered there. By default it's /callback.
{% endhint %}

{% hint style="warning" %}
If you've used another port than 80, you must remember to insert it using :\<port> in the link. An example being: dashactyl.domain.com:3000/callback
{% endhint %}

### 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&#x20;

#### 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.&#x20;

### 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.

{% hint style="warning" %}
You must set the widget id if you have enabled arc.io.
{% endhint %}

### 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.&#x20;


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://josh0086.gitbook.io/dashactyl/installation/configuration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
