Files
DynamoDNS/README.md
alphaeusmote ae19ec9c3d 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
2025-05-24 02:16:17 +00:00

129 lines
4.0 KiB
Markdown

# 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.
![DynamoDNS Dashboard](docs/images/dashboard-preview.png)
## 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