Server Documentation & Management Hub
🚀 Services Overview
| Service | URL | Description |
|---|---|---|
| Common Dashboard | https://dashboard.codebyjawad.com | This Hub |
| n8n Automation | https://n8n.codebyjawad.com | Workflow Automation Platform |
| Webmail | https://mail.codebyjawad.com | Roundcube Webmail Client |
| Mail Admin | https://mail.codebyjawad.com/iredadmin/ | Manage Domains, Users, Quotas |
🔑 Credentials
(Stored securely in /root/server_creds.txt on the VPS)
- Database Root:
root - Postmaster Admin:
postmaster@codebyjawad.com - Sales User:
rdp-sales@codebyjawad.com - Admin User:
me@codebyjawad.com
🛠️ Management Guide
1. Managing Emails
Create New User:
- Go to Mail Admin Panel.
- Login as Postmaster.
- Click Add... > User.
Create Aliases (e.g. jawad@ -> me@):
- Go to Mail Admin Panel.
- Navigate to User Profile > Aliases.
- Add the new alias.
- Important: To send as this alias, add an "Identity" in Roundcube Webmail Settings.
Email Forwarding:
- Login to Webmail as the user.
- Go to Settings > Filters.
- Create a new Filter: "Send copy to" -> Target Email.
2. Troubleshooting
Logs:
- Mail Logs:
/var/log/mail.log - Nginx Logs:
/var/log/nginx/error.log - System Status:
htopordocker stats(if docker used later, but currently pure systemd).
Common Fixes Applied:
- SSL: Automatically managed by Let's Encrypt. If expired, run
certbot renew. - IPv6: Disabled for Postfix to prevent Google rejection (
inet_protocols = ipv4). - Permissions: Web files in
/opt/www/roundcubemailowned bywww-data.
3. DNS Configuration (Reference)
Ensure your DNS provider has these records:
- A Record:
mail,n8n->62.84.176.23 - MX Record:
codebyjawad.com->mail.codebyjawad.com(Priority 10) - SPF:
v=spf1 ip4:62.84.176.23 ~all - PTR (Reverse DNS): Set
62.84.176.23->mail.codebyjawad.comin Contabo Panel.
4. Backup & Restore (Clone Server)
A dedicated backup script is installed at /root/projects/migration/backup.sh.
How to Backup:
- Connect to the server via SSH.
- Run the backup script:
/root/projects/migration/backup.sh - The script will generate a
.tar.gzfile containing all emails, databases, and configurations. - Download the file to your local computer:
scp root@dashboard.codebyjawad.com:/root/projects/migration/backups/full_server_backup_YYYYMMDD_HHMMSS.tar.gz ./backup.tar.gz
How to Restore (On a new server):
- Upload the backup file to
/on the new server. - Extract it:
tar -xzvf backup.tar.gz -C / - Restore Database:
mysql < /root/projects/migration/backups/all_databases.sql - Reboot the server.
🤖 System Status
- Node.js: v24.12.0
- Database: MariaDB
- Web Server: Nginx