mirror of
https://github.com/freedbygrace/DynamoDNS.git
synced 2026-07-26 11:38:13 +00:00
Set up the project with initial files and improve development experience
Add .gitignore, .env.example, CONTRIBUTING.md, LICENSE, a preview image, and roadmap to the project. 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,36 @@
|
||||
# Database Configuration
|
||||
DATABASE_URL=postgresql://username:password@localhost:5432/dynamodns
|
||||
|
||||
# Server Configuration
|
||||
PORT=5000
|
||||
NODE_ENV=development
|
||||
HOST=0.0.0.0
|
||||
SESSION_SECRET=your_secure_random_string
|
||||
|
||||
# Authentication Configuration
|
||||
ENABLE_REGISTRATION=false
|
||||
DEFAULT_ADMIN_USERNAME=admin
|
||||
DEFAULT_ADMIN_PASSWORD=admin # Change this in production!
|
||||
DEFAULT_ADMIN_EMAIL=admin@example.com
|
||||
|
||||
# LDAP Authentication (Optional)
|
||||
LDAP_ENABLED=false
|
||||
LDAP_URL=ldap://ldap.example.com
|
||||
LDAP_BIND_DN=cn=admin,dc=example,dc=com
|
||||
LDAP_BIND_PASSWORD=your_ldap_password
|
||||
LDAP_SEARCH_BASE=ou=users,dc=example,dc=com
|
||||
LDAP_SEARCH_FILTER=(uid={{username}})
|
||||
LDAP_USER_ATTR_USERNAME=uid
|
||||
LDAP_USER_ATTR_EMAIL=mail
|
||||
LDAP_USER_ATTR_DISPLAY_NAME=cn
|
||||
|
||||
# OpenID Connect Authentication (Optional)
|
||||
OIDC_ENABLED=false
|
||||
OIDC_ISSUER=https://auth.example.com
|
||||
OIDC_CLIENT_ID=your_client_id
|
||||
OIDC_CLIENT_SECRET=your_client_secret
|
||||
OIDC_CALLBACK_URL=https://dynamodns.example.com/api/auth/oidc/callback
|
||||
OIDC_SCOPE="openid profile email"
|
||||
|
||||
# Logging
|
||||
LOG_LEVEL=info
|
||||
+60
-5
@@ -1,6 +1,61 @@
|
||||
node_modules
|
||||
dist
|
||||
# Dependencies
|
||||
node_modules/
|
||||
.pnp
|
||||
.pnp.js
|
||||
|
||||
# Testing
|
||||
coverage/
|
||||
.nyc_output/
|
||||
|
||||
# Build output
|
||||
dist/
|
||||
build/
|
||||
|
||||
# Environment variables
|
||||
.env
|
||||
.env.local
|
||||
.env.development.local
|
||||
.env.test.local
|
||||
.env.production.local
|
||||
|
||||
# Logs
|
||||
logs/
|
||||
*.log
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
|
||||
# Runtime data
|
||||
pids/
|
||||
*.pid
|
||||
*.seed
|
||||
*.pid.lock
|
||||
|
||||
# Editor directories and files
|
||||
.idea/
|
||||
.vscode/
|
||||
*.swp
|
||||
*.swo
|
||||
.DS_Store
|
||||
server/public
|
||||
vite.config.ts.*
|
||||
*.tar.gz
|
||||
.directory
|
||||
Thumbs.db
|
||||
|
||||
# Cache directories
|
||||
.npm/
|
||||
.eslintcache
|
||||
.stylelintcache
|
||||
.cache/
|
||||
|
||||
# Debug files
|
||||
.node_repl_history
|
||||
|
||||
# Yarn Integrity file
|
||||
.yarn-integrity
|
||||
|
||||
# TypeScript cache
|
||||
*.tsbuildinfo
|
||||
next-env.d.ts
|
||||
|
||||
# Local package files
|
||||
package-lock.json.1
|
||||
package-lock-json.bak
|
||||
+108
@@ -0,0 +1,108 @@
|
||||
# Contributing to DynamoDNS
|
||||
|
||||
Thank you for your interest in contributing to DynamoDNS! This document provides guidelines and instructions for contributing to this project.
|
||||
|
||||
## Code of Conduct
|
||||
|
||||
By participating in this project, you agree to abide by our Code of Conduct. Please read it to understand what behavior will and will not be tolerated.
|
||||
|
||||
## How Can I Contribute?
|
||||
|
||||
### Reporting Bugs
|
||||
|
||||
This section guides you through submitting a bug report. Following these guidelines helps maintainers and the community understand your report, reproduce the behavior, and find related reports.
|
||||
|
||||
- Use the issue tracker to report bugs
|
||||
- Before creating a new issue, check if the problem has already been reported
|
||||
- When you create a new issue, include as many details as possible by filling out the provided template
|
||||
|
||||
### Suggesting Enhancements
|
||||
|
||||
This section guides you through submitting an enhancement suggestion, including completely new features and minor improvements to existing functionality.
|
||||
|
||||
- Use the issue tracker with the enhancement label
|
||||
- Provide a clear and detailed explanation of the feature you want
|
||||
- Explain why this enhancement would be useful to most DynamoDNS users
|
||||
|
||||
### Your First Code Contribution
|
||||
|
||||
Unsure where to begin contributing? Look for issues labeled:
|
||||
|
||||
- `good first issue` - issues which are good for newcomers
|
||||
- `help wanted` - issues which need extra attention
|
||||
- `documentation` - improvements or additions to documentation
|
||||
|
||||
### Pull Requests
|
||||
|
||||
- Fill in the required template
|
||||
- Follow the coding style and standards
|
||||
- Include appropriate test cases
|
||||
- Update documentation for any new features
|
||||
- End all files with a newline
|
||||
- Place requires/imports in the following order:
|
||||
- Built-in Node Modules (e.g., 'path')
|
||||
- External Modules (e.g., 'express')
|
||||
- Internal Modules (e.g., './utils')
|
||||
|
||||
## Development Setup
|
||||
|
||||
To set up your development environment:
|
||||
|
||||
1. Fork the repository
|
||||
2. Clone your fork locally
|
||||
3. Install dependencies: `npm install`
|
||||
4. Create a `.env` file with development settings
|
||||
5. Run `npm run dev` to start the development server
|
||||
|
||||
See the [Development Guide](docs/development-guide.md) for more detailed instructions.
|
||||
|
||||
## Coding Guidelines
|
||||
|
||||
### JavaScript/TypeScript Style Guide
|
||||
|
||||
- We use TypeScript for type safety
|
||||
- Follow the ESLint configuration included in the project
|
||||
- Use Prettier for code formatting
|
||||
- Write descriptive variable and function names
|
||||
- Comment your code where necessary, especially complex logic
|
||||
|
||||
### Git Commit Messages
|
||||
|
||||
- Use the present tense ("Add feature" not "Added feature")
|
||||
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
|
||||
- Limit the first line to 72 characters or less
|
||||
- Reference issues and pull requests liberally after the first line
|
||||
- Consider starting the commit message with an applicable emoji:
|
||||
- ✨ `:sparkles:` when adding a new feature
|
||||
- 🐛 `:bug:` when fixing a bug
|
||||
- 📚 `:books:` when adding or updating documentation
|
||||
- ♻️ `:recycle:` when refactoring code
|
||||
- 🧪 `:test_tube:` when adding tests
|
||||
- 🎨 `:art:` when improving the format/structure of the code
|
||||
|
||||
### Testing Guidelines
|
||||
|
||||
- Write tests for all new features and bug fixes
|
||||
- Aim for high test coverage
|
||||
- Test edge cases and error conditions
|
||||
- Run the full test suite before submitting a pull request
|
||||
|
||||
## Pull Request Process
|
||||
|
||||
1. Ensure all tests pass
|
||||
2. Update the documentation with details of changes
|
||||
3. The pull request will be merged once it receives approval from maintainers
|
||||
|
||||
## Release Process
|
||||
|
||||
DynamoDNS follows semantic versioning. The release process is:
|
||||
|
||||
1. New features in master branch are bundled for a future release
|
||||
2. Release candidates undergo additional testing
|
||||
3. Final releases are tagged and published
|
||||
|
||||
## Questions?
|
||||
|
||||
If you have any questions, feel free to create an issue with the "question" label or contact the maintainers directly.
|
||||
|
||||
Thank you for contributing to DynamoDNS!
|
||||
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2025 DynamoDNS Contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -0,0 +1,62 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="800" height="450" viewBox="0 0 800 450" xmlns="http://www.w3.org/2000/svg">
|
||||
<!-- Dashboard Background -->
|
||||
<rect x="0" y="0" width="800" height="450" fill="#f8fafc" />
|
||||
|
||||
<!-- Header Bar -->
|
||||
<rect x="0" y="0" width="800" height="60" fill="#1e293b" />
|
||||
<text x="30" y="38" font-family="Arial" font-size="24" font-weight="bold" fill="white">DynamoDNS</text>
|
||||
|
||||
<!-- Navigation Sidebar -->
|
||||
<rect x="0" y="60" width="200" height="390" fill="#f1f5f9" />
|
||||
|
||||
<!-- Navigation Items -->
|
||||
<rect x="10" y="80" width="180" height="40" rx="4" fill="#e2e8f0" />
|
||||
<text x="45" y="105" font-family="Arial" font-size="14" fill="#334155">Dashboard</text>
|
||||
|
||||
<text x="45" y="155" font-family="Arial" font-size="14" fill="#64748b">Domains</text>
|
||||
<text x="45" y="195" font-family="Arial" font-size="14" fill="#64748b">DNS Records</text>
|
||||
<text x="45" y="235" font-family="Arial" font-size="14" fill="#64748b">History</text>
|
||||
<text x="45" y="275" font-family="Arial" font-size="14" fill="#64748b">Metrics</text>
|
||||
<text x="45" y="315" font-family="Arial" font-size="14" fill="#64748b">Webhooks</text>
|
||||
<text x="45" y="355" font-family="Arial" font-size="14" fill="#64748b">API Tokens</text>
|
||||
<text x="45" y="395" font-family="Arial" font-size="14" fill="#64748b">Settings</text>
|
||||
|
||||
<!-- Main Content Area -->
|
||||
<rect x="220" y="80" width="560" height="50" rx="6" fill="#ffffff" stroke="#e2e8f0" stroke-width="1" />
|
||||
<text x="240" y="110" font-family="Arial" font-size="16" font-weight="bold" fill="#0f172a">DNS Overview</text>
|
||||
|
||||
<!-- Statistics Cards -->
|
||||
<rect x="220" y="150" width="170" height="100" rx="6" fill="#ffffff" stroke="#e2e8f0" stroke-width="1" />
|
||||
<text x="240" y="180" font-family="Arial" font-size="14" fill="#64748b">Total Domains</text>
|
||||
<text x="240" y="215" font-family="Arial" font-size="24" font-weight="bold" fill="#0f172a">24</text>
|
||||
|
||||
<rect x="410" y="150" width="170" height="100" rx="6" fill="#ffffff" stroke="#e2e8f0" stroke-width="1" />
|
||||
<text x="430" y="180" font-family="Arial" font-size="14" fill="#64748b">DNS Records</text>
|
||||
<text x="430" y="215" font-family="Arial" font-size="24" font-weight="bold" fill="#0f172a">186</text>
|
||||
|
||||
<rect x="600" y="150" width="170" height="100" rx="6" fill="#ffffff" stroke="#e2e8f0" stroke-width="1" />
|
||||
<text x="620" y="180" font-family="Arial" font-size="14" fill="#64748b">Updates Today</text>
|
||||
<text x="620" y="215" font-family="Arial" font-size="24" font-weight="bold" fill="#0f172a">42</text>
|
||||
|
||||
<!-- Charts -->
|
||||
<rect x="220" y="270" width="350" height="160" rx="6" fill="#ffffff" stroke="#e2e8f0" stroke-width="1" />
|
||||
<text x="240" y="300" font-family="Arial" font-size="14" font-weight="bold" fill="#0f172a">DNS Updates Over Time</text>
|
||||
|
||||
<!-- Simple line chart -->
|
||||
<polyline points="240,380 270,360 300,370 330,350 360,330 390,345 420,320 450,310 480,330 510,290 540,300"
|
||||
fill="none" stroke="#3b82f6" stroke-width="2" />
|
||||
|
||||
<!-- X and Y axis -->
|
||||
<line x1="240" y1="380" x2="540" y2="380" stroke="#94a3b8" stroke-width="1" />
|
||||
<line x1="240" y1="380" x2="240" y2="300" stroke="#94a3b8" stroke-width="1" />
|
||||
|
||||
<!-- Recent Activity -->
|
||||
<rect x="590" y="270" width="180" height="160" rx="6" fill="#ffffff" stroke="#e2e8f0" stroke-width="1" />
|
||||
<text x="610" y="300" font-family="Arial" font-size="14" font-weight="bold" fill="#0f172a">Recent Activity</text>
|
||||
|
||||
<text x="610" y="330" font-family="Arial" font-size="12" fill="#64748b">example.com: A record updated</text>
|
||||
<text x="610" y="350" font-family="Arial" font-size="12" fill="#64748b">dev.site.io: MX record added</text>
|
||||
<text x="610" y="370" font-family="Arial" font-size="12" fill="#64748b">api.example.org: CNAME updated</text>
|
||||
<text x="610" y="390" font-family="Arial" font-size="12" fill="#64748b">myapp.com: TXT record added</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.8 KiB |
+104
@@ -0,0 +1,104 @@
|
||||
# DynamoDNS Roadmap
|
||||
|
||||
This document outlines the planned features and improvements for future releases of DynamoDNS.
|
||||
|
||||
## Short-term Goals (Next 3 Months)
|
||||
|
||||
### Stability and Performance
|
||||
- [ ] Improve error handling across the application
|
||||
- [ ] Optimize database queries for better performance
|
||||
- [ ] Implement comprehensive logging system
|
||||
- [ ] Add unit and integration tests to reach 80% code coverage
|
||||
|
||||
### User Experience
|
||||
- [ ] Enhance mobile responsiveness across all pages
|
||||
- [ ] Add dark mode theme
|
||||
- [ ] Implement guided setup wizard for new users
|
||||
- [ ] Create interactive DNS record editor
|
||||
- [ ] Improve accessibility compliance
|
||||
|
||||
### Core Features
|
||||
- [ ] Support for SRV and CAA record types
|
||||
- [ ] Batch import/export of DNS records
|
||||
- [ ] Enhanced filter and search functionality for records
|
||||
- [ ] Add support for DNS templates
|
||||
|
||||
## Mid-term Goals (4-8 Months)
|
||||
|
||||
### Enhanced Security
|
||||
- [ ] Implement two-factor authentication
|
||||
- [ ] Add IP-based access controls
|
||||
- [ ] Create audit logging system
|
||||
- [ ] Add rate limiting for API endpoints
|
||||
- [ ] Enhance password policy management
|
||||
|
||||
### Integrations
|
||||
- [ ] Add support for DNS-over-HTTPS (DoH) validation
|
||||
- [ ] Integrate with additional DNS providers (Namecheap, Gandi, etc.)
|
||||
- [ ] Create Slack/Discord notification integrations
|
||||
- [ ] Add support for PagerDuty and OpsGenie for alerts
|
||||
- [ ] Implement SMTP notification system
|
||||
|
||||
### Advanced Features
|
||||
- [ ] Bulk operations for DNS records
|
||||
- [ ] Scheduled DNS record changes
|
||||
- [ ] DNS health monitoring and alerting
|
||||
- [ ] Domain expiration monitoring
|
||||
- [ ] DNS propagation checking across multiple resolvers
|
||||
|
||||
## Long-term Goals (9+ Months)
|
||||
|
||||
### Enterprise Features
|
||||
- [ ] Multi-region deployment support
|
||||
- [ ] High availability configuration
|
||||
- [ ] Automated disaster recovery
|
||||
- [ ] Advanced SSO integration (SAML, etc.)
|
||||
- [ ] Advanced permission management with custom role definitions
|
||||
|
||||
### Analytics and Reporting
|
||||
- [ ] Enhanced metrics dashboard with customizable views
|
||||
- [ ] Scheduled report generation and delivery
|
||||
- [ ] Anomaly detection for DNS traffic
|
||||
- [ ] Comprehensive API usage analytics
|
||||
- [ ] Custom report builder
|
||||
|
||||
### Community and Ecosystem
|
||||
- [ ] Public API documentation portal
|
||||
- [ ] SDK development for common programming languages
|
||||
- [ ] Plugin architecture for extensibility
|
||||
- [ ] Community contribution guidelines and support
|
||||
- [ ] Marketplace for third-party integrations and templates
|
||||
|
||||
## Feature Requests
|
||||
|
||||
If you have a feature request, please submit it as an issue in our GitHub repository with the "feature request" label. Include a detailed description of the feature, its potential benefits, and any relevant use cases.
|
||||
|
||||
## Priority Adjustment
|
||||
|
||||
This roadmap is subject to change based on user feedback and community needs. We prioritize features based on:
|
||||
|
||||
1. User demand and feedback
|
||||
2. Strategic alignment with project goals
|
||||
3. Implementation complexity and resource requirements
|
||||
4. Security considerations
|
||||
5. Dependency on other features
|
||||
|
||||
## Release Process
|
||||
|
||||
We follow a predictable release cycle:
|
||||
|
||||
- **Patch releases** (e.g., 1.0.1): Bug fixes and minor improvements, released as needed
|
||||
- **Minor releases** (e.g., 1.1.0): New features and enhancements, released approximately every 4-6 weeks
|
||||
- **Major releases** (e.g., 2.0.0): Significant changes that may include breaking changes, released 2-3 times per year
|
||||
|
||||
Each major and minor release will be preceded by at least one release candidate (RC) for testing.
|
||||
|
||||
## Contributing to the Roadmap
|
||||
|
||||
We welcome community involvement in shaping this roadmap. If you're interested in contributing to any of these features or have suggestions for the roadmap, please:
|
||||
|
||||
1. Join the discussion in our community forums
|
||||
2. Submit detailed proposals for feature implementation
|
||||
3. Contribute code through pull requests (see [CONTRIBUTING.md](../CONTRIBUTING.md))
|
||||
|
||||
Thank you for your interest in the future of DynamoDNS!
|
||||
Reference in New Issue
Block a user