mirror of
https://github.com/freedbygrace/DynamoDNS.git
synced 2026-08-27 18:57:28 +00:00
Document project architecture, setup, usage, and API endpoints
Adds comprehensive documentation including architecture, API reference, deployment, development, and user guides with README.md. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 9111ef36-26c8-4085-84ca-a35dc1fec1b5 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/7083d608-d6d3-4a6a-9a27-6286c5109627/910f6160-6716-488e-83e6-61256595c269.jpg
This commit is contained in:
@@ -0,0 +1,129 @@
|
||||
# DynamoDNS
|
||||
|
||||
A comprehensive web-based dynamic DNS management platform offering advanced infrastructure control, monitoring, and multi-provider integration with a focus on user experience and security.
|
||||
|
||||

|
||||
|
||||
## Features
|
||||
|
||||
- **Multi-Provider DNS Management**: Support for Cloudflare, AWS Route53, GoDaddy, and custom providers
|
||||
- **Dynamic DNS Updates**: Automatic IP detection and DNS record updates
|
||||
- **Role-Based Access Control**: Granular permissions with customizable roles
|
||||
- **Customer Management**: Support for multiple organizations with isolated access
|
||||
- **Historical Tracking**: Complete audit trail of DNS changes
|
||||
- **Performance Metrics**: Visualize DNS performance and activity
|
||||
- **API Integration**: RESTful API with token-based authentication
|
||||
- **Webhook Notifications**: Real-time notifications for DNS events
|
||||
- **Multi-Factor Authentication**: Enhanced security for user accounts
|
||||
- **Customizable Dashboards**: Personalized monitoring views
|
||||
|
||||
## Technology Stack
|
||||
|
||||
- **Backend**:
|
||||
- Express.js for API server
|
||||
- PostgreSQL for robust data storage
|
||||
- Drizzle ORM for database interactions
|
||||
- Passport.js for multi-method authentication
|
||||
- WebSockets for real-time updates
|
||||
|
||||
- **Frontend**:
|
||||
- React for user interface
|
||||
- TanStack Query for data fetching and caching
|
||||
- Shadcn UI components for consistent design
|
||||
- Tailwind CSS for styling
|
||||
- Recharts for data visualization
|
||||
|
||||
## Getting Started
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- Node.js (v18 or later)
|
||||
- PostgreSQL (v14 or later)
|
||||
- Modern web browser
|
||||
|
||||
### Installation
|
||||
|
||||
1. Clone the repository:
|
||||
```bash
|
||||
git clone https://github.com/yourusername/dynamodns.git
|
||||
cd dynamodns
|
||||
```
|
||||
|
||||
2. Install dependencies:
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
|
||||
3. Configure environment variables by creating a `.env` file:
|
||||
```
|
||||
DATABASE_URL=postgresql://username:password@localhost:5432/dynamodns
|
||||
PORT=5000
|
||||
SESSION_SECRET=your_secure_secret
|
||||
ENABLE_REGISTRATION=false
|
||||
```
|
||||
|
||||
4. Run database migrations:
|
||||
```bash
|
||||
npm run db:push
|
||||
```
|
||||
|
||||
5. Start the application:
|
||||
```bash
|
||||
npm run dev
|
||||
```
|
||||
|
||||
6. Access the application at http://localhost:5000
|
||||
|
||||
### Default Admin Account
|
||||
|
||||
On first launch, a default admin account is created:
|
||||
- Username: `admin`
|
||||
- Password: `admin`
|
||||
|
||||
**Important**: Change the default password immediately after first login.
|
||||
|
||||
## Documentation
|
||||
|
||||
Comprehensive documentation is available in the `/docs` directory:
|
||||
|
||||
- [User Guide](docs/user-guide.md) - For end users managing DNS records
|
||||
- [API Reference](docs/api-reference.md) - For developers integrating with the API
|
||||
- [Deployment Guide](docs/deployment-guide.md) - For system administrators
|
||||
- [Development Guide](docs/development-guide.md) - For contributors
|
||||
- [Architecture](docs/architecture.md) - System design and architecture overview
|
||||
|
||||
## Deployment
|
||||
|
||||
DynamoDNS can be deployed in various environments:
|
||||
|
||||
- **Standalone Server**: Direct installation on Linux/Windows servers
|
||||
- **Docker**: Container-based deployment with Docker Compose
|
||||
- **Cloud Platforms**: Deploy to AWS, Azure, Google Cloud, or other providers
|
||||
|
||||
See the [Deployment Guide](docs/deployment-guide.md) for detailed instructions.
|
||||
|
||||
## Contributing
|
||||
|
||||
We welcome contributions from the community! Please see our [Development Guide](docs/development-guide.md) for information on getting started with development.
|
||||
|
||||
To contribute:
|
||||
|
||||
1. Fork the repository
|
||||
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
|
||||
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
|
||||
4. Push to the branch (`git push origin feature/amazing-feature`)
|
||||
5. Open a Pull Request
|
||||
|
||||
## License
|
||||
|
||||
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
||||
|
||||
## Support
|
||||
|
||||
For support or questions, please [open an issue](https://github.com/yourusername/dynamodns/issues) on GitHub, or contact the maintainers directly.
|
||||
|
||||
## Acknowledgements
|
||||
|
||||
- The open source community for the amazing tools that make this project possible
|
||||
- Contributors who have helped improve and maintain this project
|
||||
- Users who have provided feedback and feature suggestions
|
||||
Reference in New Issue
Block a user