Skip to content

Natsku123/party-filler

Repository files navigation

Party Filler

Code style: black Docker Docs

Find more players to your parties from your Discord-server with Discord integrations and party status tracking.

Installation

Discord

Inorder to use PartyFiller properly, you will need a Discord Application. You can view your applications or create a new one from Discord Developer Portal.

After creating an application, you will find the CLIENT ID, CLIENT SECRET and you can set a redirection URL for OAuth 2. The redirect URL should be in the following format: https://[YOUR DOMAIN HERE]/api/authorize

Discord OAuth2 Settings

You can also add a bot to your applications (which is needed to use PartyFiller properly atm) in the Bot-tab. You can also change the bots name and get the BOT_TOKEN.

Discord Bot Settings

Manual

TODO: Add proper guide.

You could install it manually though it is not recommended, since the stack was built and designed to be run inside Docker.

Docker Compose (Recommended)

All necessary files needed to run PartyFiller can be found in example folder. The example docker-compose.yml file includes a Traefik service which you can use or setup separately and connect to the traefiknet network. You could also use some other reverse proxy in front of the services.

Create a network for Traefik.

docker network create traefiknet

Copy traefik.yml into the traefik folder for example /srv/docker/traefik, make sure that the path is the same in the docker-compose.yml file.

Move / copy docker-compose.yml and example.env to some new directory for example /srv/docker/partyfiller.

Rename example.env into .env and make changes described in docker-compose.yml and change all values CHANGE_ME and FROM_DISCORD to appropriate values. FROM_DISCORD values are described and given in the Discord section.

After the modifications you can just start the stack:

docker-compose up -d

Docker Standalone (Recommended)

TODO: Add guide.

General

Data Formats

Webhooks

on_party_create

{
    "party": {
        "id": 7,
        "title": "Title",
        "leaderId": 1,
        "game": "Game",
        "maxPlayers": 5,
        "minPlayers": 5,
        "description": "Description",
        "channelId": 1,
        "startTime": "1996-10-15T00:05:32Z",
        "endTime": "1996-10-15T00:05:32Z",
        "channel": {
            "id": 1,
            "name": "chat",
            "discordId": "123456789012345678",
            "serverId": 3
        },
        "leader":  {
            "id": 1,
            "discordId": "123456789012345678",
            "name": "Player name",
            "discriminator": "1234",
            "icon": "iconHash"
        },
        "members": []
    },
    "event": {
        "name": "on_party_create",
        "datetime": "1996-10-15T00:05:32Z"
    }
}

on_member_join

{
    "member": {
        "id": 4,
        "playerReq": null,
        "partyId": 9,
        "playerId": 1,
        "roleId": null,
        "party": {
            "id": 9,
            "title": "Title",
            "leaderId": 2,
            "game": "Game",
            "maxPlayers": 1,
            "minPlayers": 1,
            "description": "nopee testi - SUORITETTU",
            "channelId": 1,
            "startTime": "1996-10-15T00:05:32Z",
            "endTime": "1996-10-15T00:05:32Z"
        },
        "player": {
            "id": 1,
            "discordId": "123456789012345678",
            "name": "Player name",
            "discriminator": "1234",
            "icon": "iconHash"
        },
        "role": null
    },
    "channel": {
        "id": 1,
        "name": "chat",
        "discordId": "123456789012345678",
        "serverId": 3
    },
    "event": {
        "name": "on_member_join",
        "datetime": "1996-10-15T00:05:32Z"
    }
}