ProjectDGT is a powerful tool designed to maintain your Discord status online 24/7. This project offers flexibility in deployment, with Docker support for seamless setup and management, as well as standalone executable files for those who prefer a more traditional approach. The core functionality is implemented in Go, leveraging the Gorilla WebSocket package for efficient real-time communication.
- Set and maintain Discord online status continuously
- Docker support for easy deployment and cross-platform compatibility
- Standalone executable files available for Linux (AMD64, ARM64) and Windows (AMD64, ARM64)
- Real-time communication using WebSockets for responsive status updates
- Flexible configuration options: environment variables or interactive prompt
- User-friendly interface with clear prompts and instructions
- Optional emoji support (configurable)
- For Docker deployment:
- Docker installed on your machine
- Basic understanding of Docker
- For standalone execution:
- A compatible system: Linux (AMD64 or ARM64) or Windows (AMD64 or ARM64)
-
Clone the repository:
git clone https://github.com/Milou4Dev/ProjectDGT.git cd ProjectDGT
-
Build and Run the Docker Container:
docker buildx build --pull --no-cache -t projectdgtimg . && \ docker run --rm -it --init projectdgtimg
- Visit the Releases page of the ProjectDGT repository.
- Download the appropriate executable for your system:
- Linux: Choose between
amd64
orarm64
versions - Windows: Choose between
amd64
orarm64
versions
- Linux: Choose between
- Run the executable file directly on your system.
ProjectDGT offers two methods of configuration:
- Environment Variables (Advanced)
- Interactive Prompt (Beginner-Friendly)
ProjectDGT uses environment variables for configuration. The following variables are necessary for the application to function properly:
TOKEN
: Your Discord tokenSTATUS
: The status you want to set (e.g., "online", "idle", "dnd")CUSTOM_STATUS
: Your custom status messageUSE_EMOJI
: Set to "true" if you want to use an emoji in your status, "false" otherwiseEMOJI_NAME
: The name of the emoji (ifUSE_EMOJI
is "true")EMOJI_ID
: The ID of the emoji (ifUSE_EMOJI
is "true")
To set these environment variables:
-
For Docker deployment:
- You can pass these variables when running the Docker container using the
-e
flag:docker run --rm -it --init \ -e TOKEN=your_token \ -e STATUS=your_status \ -e CUSTOM_STATUS=your_custom_status \ -e USE_EMOJI=false \ -e EMOJI_NAME=your_emoji_name \ -e EMOJI_ID=your_emoji_id \ projectdgtimg
- You can pass these variables when running the Docker container using the
-
For standalone executable:
- Set these variables in your system environment before running the executable.
- On Windows, you can use the
setx
command in Command Prompt:setx TOKEN your_token setx STATUS your_status
- On Linux or macOS, you can export these variables in your shell:
export TOKEN=your_token export STATUS=your_status
Note: Make sure to replace the placeholder values with your actual Discord token, desired status, and other configuration details.
If you're not familiar with setting environment variables, don't worry! ProjectDGT provides an interactive setup process:
- Simply run the application (either via Docker or the standalone executable).
- The program will detect that environment variables are not set.
- You'll be prompted to enter the necessary configuration details:
- Your Discord token
- Desired status (e.g., "online", "idle", "dnd")
- Custom status message
- Whether to use an emoji (yes/no)
- If yes to emoji, the emoji name and ID
This method is perfect for beginners or those who prefer a guided setup process.
- Choose your preferred configuration method:
- If using environment variables, ensure all necessary variables are set as described in the "Environment Variables" section.
- If preferring the interactive method, simply start the application and follow the prompts.
- Start ProjectDGT using either the Docker container or the standalone executable.
- If you chose the environment variables method, the application will automatically use the provided settings to set your Discord status.
- If you chose the interactive method, you'll be guided through the setup process.
- For emoji usage:
- If you're familiar with Discord emoji configuration, you can opt to use an emoji when prompted or set
USE_EMOJI
to "true". - If you're unsure about emoji configuration, it's recommended to choose not to use an emoji for a simpler setup.
- If you're familiar with Discord emoji configuration, you can opt to use an emoji when prompted or set
ProjectDGT/
├── LICENSE
├── README.md
├── dockerfile
├── go.mod
├── go.sum
└── main.go
- LICENSE: Contains the Apache License 2.0 information for the project.
- README.md: Provides a comprehensive overview and instructions.
- dockerfile: Contains instructions for creating a Docker image.
- go.mod: Tracks the project dependencies.
- go.sum: Verifies the integrity of the dependencies.
- main.go: The main source code file of the project.
Contributions are welcome and appreciated! Here's how you can contribute:
- Fork the repository
- Create a new branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Please ensure your code adheres to the project's coding standards and includes appropriate tests.
This project is licensed under the Apache License 2.0. See the LICENSE file for the full license text.
Key points of the Apache License 2.0:
- You can freely use, modify, distribute, and sell this software.
- You must include the original copyright notice and license in any copy of the software/source.
- You receive no warranty or guarantee for the software.
- If you modify the code, you must indicate significant changes made to it.
- The license provides an express grant of patent rights from contributors to users.
- Gorilla WebSocket for the robust WebSocket implementation.
- The Go community for providing excellent libraries and resources.
- All contributors who have helped improve ProjectDGT.
If you encounter any issues or have questions, please open an issue on the GitHub repository. We're here to help!
This project is intended for educational and personal use only. Please ensure you comply with Discord's terms of service when using this tool.