✅ PropManager is running on localhost:8001 ✅ Seed data loaded (17 users, 5 properties, 15 active leases, 119 invoices) ✅ All containers healthy (web, worker, db, redis)
- Ensure propdemo.arctek.us DNS A record points to your server IP
- Verify DNS propagation:
nslookup propdemo.arctek.us
Create nginx configuration file at /etc/nginx/sites-available/propdemo.arctek.us or your Unraid nginx config location:
upstream propmanager_backend {
server 127.0.0.1:8001;
}
server {
listen 80;
server_name propdemo.arctek.us;
# Optional: Redirect to HTTPS (after SSL setup)
# return 301 https://$server_name$request_uri;
client_max_body_size 100M;
# Logs
access_log /var/log/nginx/propdemo.arctek.us.access.log;
error_log /var/log/nginx/propdemo.arctek.us.error.log;
# Static files (served by Django in dev mode)
location /static/ {
proxy_pass http://propmanager_backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# Media files (served by Django in dev mode)
location /media/ {
proxy_pass http://propmanager_backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# Main application
location / {
proxy_pass http://propmanager_backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# WebSocket support (if needed)
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# Timeouts
proxy_connect_timeout 60s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
}
}- Create/update nginx configuration file
- Enable site:
ln -s /etc/nginx/sites-available/propdemo.arctek.us /etc/nginx/sites-enabled/(if using sites-available/enabled pattern) - Test configuration:
nginx -t - Reload nginx:
systemctl reload nginxornginx -s reload
Update Django's ALLOWED_HOSTS to include the domain:
- Add
propdemo.arctek.usto allowed hosts in development settings or use environment variable
Current development settings already have DEBUG=True which is permissive, but for better security:
docker exec propmanager-web-dev python manage.py shell -c "
from django.conf import settings
print('ALLOWED_HOSTS:', settings.ALLOWED_HOSTS)
"If you want HTTPS:
- Install certbot:
apt-get install certbot python3-certbot-nginx(or use your Unraid method) - Obtain certificate:
certbot --nginx -d propdemo.arctek.us - Certbot will automatically update nginx configuration for HTTPS
- Access http://propdemo.arctek.us (or https if SSL configured)
- Test admin portal: http://propdemo.arctek.us/admin-portal/login/
- Test tenant portal: http://propdemo.arctek.us/tenant/login/
- Username: admin / Password: admin123 (Admin role)
- Username: staff / Password: staff123 (Staff role)
Use any of these tenant usernames with password tenant123:
perfect_payer- Perfect payment historymodel_tenant- Model tenantreliable_renter- Reliable payerchronic_charlie- Chronic late payeroverdue_olivia- Has overdue balance- ...and 10 more test tenants
Note: In development mode, OTP code is always 123456
- Username: admin / Password: admin123
- Container: propmanager-web-dev
- Internal Port: 8000
- External Port: 8001
- Database: PostgreSQL (port 5433)
- Redis: port 6380
- Docker Compose Files:
docker-compose.ymldocker-compose.dev.override.yml
docker logs -f propmanager-web-dev
docker logs -f propmanager-worker-devWEB_PORT=8001 docker compose -f docker-compose.yml -f docker-compose.dev.override.yml restartWEB_PORT=8001 docker compose -f docker-compose.yml -f docker-compose.dev.override.yml downWEB_PORT=8001 docker compose -f docker-compose.yml -f docker-compose.dev.override.yml up -ddocker exec -it propmanager-web-dev python manage.py shell- Development mode has hot-reload enabled
- DEBUG mode is ON - do not use for production
- Secret key is hardcoded for development
- Database and media files are persisted in Docker volumes