{"id":15112366,"url":"https://github.com/freecode911/domainforge","last_synced_at":"2026-01-19T04:32:46.244Z","repository":{"id":256935741,"uuid":"855827354","full_name":"FreeCode911/DomainForge","owner":"FreeCode911","description":"DomainForge, you can effortlessly create, manage, and organize subdomains directly from your Discord server.DomainForge, you can effortlessly create, manage, and organize subdomains directly from your Discord server.","archived":false,"fork":false,"pushed_at":"2024-09-13T10:18:31.000Z","size":73,"stargazers_count":0,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-05T18:14:27.458Z","etag":null,"topics":["cloudflare-api","clouflare","discord","discord-py","discordbot"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FreeCode911.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-11T14:19:09.000Z","updated_at":"2024-09-13T10:19:22.000Z","dependencies_parsed_at":"2024-09-14T01:25:50.495Z","dependency_job_id":null,"html_url":"https://github.com/FreeCode911/DomainForge","commit_stats":null,"previous_names":["freecode911/domainforge"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FreeCode911%2FDomainForge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FreeCode911%2FDomainForge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FreeCode911%2FDomainForge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FreeCode911%2FDomainForge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FreeCode911","download_url":"https://codeload.github.com/FreeCode911/DomainForge/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247378140,"owners_count":20929297,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloudflare-api","clouflare","discord","discord-py","discordbot"],"created_at":"2024-09-26T00:44:25.506Z","updated_at":"2026-01-19T04:32:46.237Z","avatar_url":"https://github.com/FreeCode911.png","language":"Python","readme":"# DomainForge v1.2\n\n\u003c!-- Add project badges here --\u003e\n\u003c!-- Example: [![Build Status](https://travis-ci.org/your-username/domainforge.svg?branch=main)](https://travis-ci.org/your-username/domainforge) --\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/FreeCode911/DomainForge/blob/main/views/ultra_realistic_1726222400.png?raw=true\" alt=\"DomainForge Logo\" width=\"200\"/\u003e\n\u003c/p\u003e\n\n\u003c!-- Add a short GIF showing the bot in action here --\u003e\n\u003c!-- Example: \u003cp align=\"center\"\u003e\u003cimg src=\"path/to/animated_gif.gif\" alt=\"DomainForge Demo\" width=\"400\"/\u003e\u003c/p\u003e --\u003e\n\n## Project Summary\n\nDomainForge is a powerful and user-friendly Discord bot designed to streamline Cloudflare subdomain management directly from your Discord server. It empowers users to effortlessly create, manage, and organize subdomains, while providing administrators with robust control and monitoring capabilities. Say goodbye to tedious manual processes and embrace a seamless, Discord-integrated DNS management experience!\n\n## Table of Contents\n\n- [Features](#features)\n- [Getting Started](#getting-started)\n  - [Prerequisites](#prerequisites)\n  - [Installation](#installation)\n- [Commands](#commands)\n- [Setup for Development](#setup-for-development)\n  - [Environment Variables](#environment-variables)\n- [Contributing](#contributing)\n- [License](#license)\n- [Support](#support)\n\n## Features\n\n- **Easy Subdomain Creation**: Set up new subdomains with simple Discord commands, specifying the record type (A, CNAME, TXT, etc.).\n- **Role-Based Permissions**: Control who can create subdomains using Discord roles for enhanced security.\n- **Centralized Management**: Manage subdomains and admin settings from a single, interactive command.\n- **Cloudflare Integration**: Seamless connection with Cloudflare for reliable DNS management.\n\n### v1.2 — Release notes\n\n- Improved, consistent embed styling across all user and admin interactions.\n- Added Subdomain Rename: admins and owners can rename a subdomain (implemented as create+delete with audit comment).\n- Admin Dashboard: `/admin_manage` now shows feature flags and quick toggle buttons.\n- Feature Flags: admin-controlled features such as `request_subdomain_role` are stored in `data.json` and editable via the dashboard.\n- Hidden Items: admins can mark certain embeds/items as hidden; these keys are stored in `data.json` and controllable via the dashboard.\n- Data persistence hardened: in-memory changes are flushed on shutdown and a periodic saver ensures `data.json` stays up-to-date (prevents loss of user subdomain lists when the bot stops).\n\nSee the \"Admin Dashboard\" section below for how to toggle features and hidden items.\n\n## Getting Started\n\n### Prerequisites\n\n- A Discord server where you have administrative privileges.\n- A Cloudflare account with a domain you want to manage.\n\n### Installation\n\n1.  [Invite DomainForge](https://discord.com/oauth2/authorize?client_id=YOUR_CLIENT_ID\u0026permissions=2147483648\u0026scope=bot%20applications.commands) to your Discord server.\n2.  Use the `/create_subdomain` command to start creating subdomains.\n3.  Follow the interactive prompts to specify domain, record type, and other details.\n\n## Commands\n\n- `/create_subdomain`: Start the subdomain creation process (specify record type).\n- `/manage_subdomain`: Manage a specified subdomain.\n- `/admin_manage`: (Admin only) Access administrative functions.\n- `/whois`: (Admin only) Look up the owner of a specific subdomain.\n- `/request_subdomain_role`: Request the subdomain creation role.\n\n## Setup for Development\n\n1.  Clone this repository:\n\n    ```bash\n    git clone https://github.com/your-username/domainforge.git\n    ```\n\n2.  Install dependencies:\n\n    ```bash\n    cd domainforge\n    pip install -r requirements.txt\n    ```\n\n### Environment Variables\n\n3.  Set up your `.env` file with the following variables:\n\n    ```env\n    # Create a .env file in the same directory as bot.py\n    # Add the following variables to the .env file:\n\n    # Discord Bot Token: Obtain this from the Discord Developer Portal (https://discord.com/developers/applications)\n    DISCORD_BOT_TOKEN=Your Discord bot token\n\n    # Cloudflare API Token: Generate a token with Edit zone DNS permission (Permissions - Zone.DNS,Zone.DNS) ( Resources - All zones ) at https://dash.cloudflare.com/profile/api-tokens\n    CLOUDFLARE_API_TOKEN=Your Cloudflare API token\n\n    # Comma-separated list of role IDs that can create subdomains. To get a role ID, enable developer mode in Discord (Settings \u003e Advanced) and right-click the role and select \"Copy ID\"\n    SUBDOMAIN_CREATION_ROLES=Comma-separated list of role IDs that can create subdomains\n\n    # The channel ID where subdomain role requests are sent. To get a channel ID, enable developer mode in Discord (Settings \u003e Advanced) and right-click the channel and select \"Copy ID\"\n    ADMIN_CHANNEL_ID=The channel ID where subdomain role requests are sent\n    ```\n\n4.  Run the bot:\n\n    ```bash\n    python bot.py\n\n## Using config.py\n\n`config.py` loads environment variables from `.env` and exposes them as module-level constants.\n\nExample usage in other modules:\n\n```python\nfrom config import DISCORD_BOT_TOKEN, CLOUDFLARE_API_TOKEN, SUBDOMAIN_CREATION_ROLES\n\nprint(DISCORD_BOT_TOKEN)  # use with your Discord client setup\nif SUBDOMAIN_CREATION_ROLES:\n  print('Subdomain creation is restricted to roles:', SUBDOMAIN_CREATION_ROLES)\n```\n\nAll common configuration names are defined in `config.py` and are safe to import\nfrom anywhere in the project. Keep your `.env` secret and never commit it.\n    ```\n\n## Contributing\n\nWe welcome contributions to DomainForge! Please feel free to submit issues, fork the repository and send pull requests!\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details.\n\n## Support\n\nIf you need help or have any questions, please join our [support server](https://discord.gg/your-support-server-invite).\n\n---\n\n\u003cp align=\"center\"\u003e\nMade with ❤ by LegendYt4k\n\u003c/p\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffreecode911%2Fdomainforge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffreecode911%2Fdomainforge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffreecode911%2Fdomainforge/lists"}