Fix database scheme and introduce automatic database migration

This commit is contained in:
2026-01-19 23:22:16 +01:00
parent 6fb38a795c
commit cc40c33dc9
5 changed files with 114 additions and 42 deletions

View File

@@ -192,65 +192,65 @@ password = ["password"]
### Initialize Database
```bash
./ddns-service --init-db
ddns-service --init-db
```
### User Management
```bash
# List users
./ddns-service user list
ddns-service user list
# Add user (prompts for password)
./ddns-service user add myuser user@example.com
ddns-service user add myuser user@example.com
# Delete user (fails if hostnames exist)
./ddns-service user delete myuser
ddns-service user delete myuser
# Change password
./ddns-service user passwd myuser
ddns-service user passwd myuser
# Update email
./ddns-service user email myuser new@example.com
ddns-service user email myuser new@example.com
```
### Hostname Management
```bash
# List all hostnames
./ddns-service hostname list
ddns-service hostname list
# List hostnames for specific user
./ddns-service hostname list --user myuser
ddns-service hostname list --user myuser
# Add hostname
./ddns-service hostname add myuser mypc.dyn.example.com dyn.example.com
ddns-service hostname add myuser mypc dyn.example.com
# Add hostname with custom TTLs
./ddns-service hostname add myuser mypc.dyn.example.com dyn.example.com \
ddns-service hostname add myuser mypc dyn.example.com \
--dns-ttl 60 --expiry-ttl 7200
# Modify hostname TTLs
./ddns-service hostname modify mypc.dyn.example.com --dns-ttl 120
ddns-service hostname modify mypc dyn.example.com --dns-ttl 120
# Delete hostname
./ddns-service hostname delete mypc.dyn.example.com
ddns-service hostname delete mypc dyn.example.com
```
### Manual Cleanup
```bash
# Manually cleanup expired hostnames (delete DNS records)
./ddns-service cleanup
ddns-service cleanup
```
### Run Daemon
```bash
./ddns-service --daemon
ddns-service --daemon
# With debug logging
./ddns-service --daemon --debug
ddns-service --daemon --debug
```
## HTTP API