-
Notifications
You must be signed in to change notification settings - Fork 0
Installation Guide
crypiehef edited this page Oct 10, 2025
·
1 revision
- CPU: 2 cores, 2.0 GHz
- RAM: 4 GB
- Storage: 10 GB free space
- Network: Internet connection for QRZ.com API
- OS: Linux, macOS, or Windows
- CPU: 4 cores, 3.0 GHz
- RAM: 8 GB
- Storage: 20 GB free space (for logs and data)
- Network: Stable internet connection
- OS: Linux (Ubuntu 20.04+ recommended)
- Docker 20.10+
- Docker Compose 2.0+
- Git 2.30+
# Ubuntu/Debian
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
# macOS
# Download Docker Desktop from https://www.docker.com/products/docker-desktop
# Windows
# Download Docker Desktop from https://www.docker.com/products/docker-desktopgit clone https://github.com/crypiehef/NetControlAPP.git
cd NetControlAPPdocker-compose up -d# Check container status
docker ps
# Check logs
docker-compose logs backend
docker-compose logs frontend- Web Interface: http://localhost
- Admin Access: First registered user becomes admin
- Node.js 16.0+
- MongoDB 4.4+
- npm 8.0+
cd backend
npm install
npm startcd frontend
npm install
npm start# Install MongoDB
# Ubuntu/Debian
sudo apt-get install mongodb
# macOS
brew install mongodb-community
# Start MongoDB
sudo systemctl start mongodb
# or
brew services start mongodb-communityCreate .env file in the backend directory:
# Database
MONGODB_URI=mongodb://localhost:27017/netcontrol
# JWT
JWT_SECRET=your-super-secret-jwt-key-here
# Server
PORT=5000
NODE_ENV=production
# QRZ.com API (Optional)
QRZ_USERNAME=your-qrz-username
QRZ_PASSWORD=your-qrz-passwordFor Docker installation, environment variables are set in docker-compose.yml:
environment:
- MONGODB_URI=mongodb://mongodb:27017/netcontrol
- JWT_SECRET=your-super-secret-jwt-key-here
- NODE_ENV=production- Navigate to http://localhost
- Click "Register" to create your account
- Important: First user automatically becomes admin
- Complete registration form
- Login with your admin account
- Navigate to Settings
- Configure QRZ.com API credentials (optional)
- Upload your organization's logo
- Go to Admin Panel
- Add additional operators as needed
- Set appropriate roles (Operator/Admin)
# Stop containers
docker-compose down
# Pull latest changes
git pull origin main
# Rebuild and start
docker-compose up -d --build# Pull latest changes
git pull origin main
# Update backend
cd backend
npm install
npm start
# Update frontend
cd frontend
npm install
npm start# Check what's using port 5000
lsof -i :5000
# Kill the process
sudo kill -9 <PID>
# Or change port in docker-compose.yml# Check MongoDB status
sudo systemctl status mongodb
# Restart MongoDB
sudo systemctl restart mongodb
# Check MongoDB logs
sudo journalctl -u mongodb# Clean up Docker
docker system prune -a
# Rebuild containers
docker-compose down
docker-compose up -d --build# All services
docker-compose logs
# Specific service
docker-compose logs backend
docker-compose logs frontend
docker-compose logs mongodb
# Follow logs in real-time
docker-compose logs -f backend# Set environment variable
export DEBUG=net-control:*
# Or in .env file
DEBUG=net-control:*- Change default JWT secret
- Use HTTPS in production
- Configure firewall rules
- Set up SSL certificates
- Enable MongoDB authentication
- Regular security updates
- Backup strategy implemented
# Install certbot
sudo apt-get install certbot
# Generate certificate
sudo certbot certonly --standalone -d yourdomain.com
# Configure nginx/apache for SSL# Add to docker-compose.yml
nginx:
image: nginx:alpine
ports:
- "443:443"
volumes:
- ./ssl:/etc/nginx/ssl
- ./nginx.conf:/etc/nginx/nginx.conf# Create backup
mongodump --db netcontrol --out /backup/$(date +%Y%m%d)
# Restore backup
mongorestore --db netcontrol /backup/20231201/netcontrol# Backup volumes
docker run --rm -v netcontrol_mongodb_data:/data -v $(pwd):/backup alpine tar czf /backup/mongodb_backup.tar.gz /data
# Restore volumes
docker run --rm -v netcontrol_mongodb_data:/data -v $(pwd):/backup alpine tar xzf /backup/mongodb_backup.tar.gz -C /# Add resource limits
services:
backend:
deploy:
resources:
limits:
cpus: '1.0'
memory: 1G
reservations:
cpus: '0.5'
memory: 512M// Create indexes for better performance
db.netoperations.createIndex({ "startTime": 1 })
db.netoperations.createIndex({ "operatorId": 1 })
db.users.createIndex({ "username": 1 })# Application health
curl http://localhost/api/health
# Database health
docker-compose exec mongodb mongosh --eval "db.adminCommand('ping')"- Monitor disk space usage
- Check application logs for errors
- Update dependencies regularly
- Backup database weekly
- Monitor system performance
- Check this installation guide
- Review the main wiki documentation
- Search GitHub issues
- Create a new issue if needed
- GitHub Discussions
- Amateur Radio Forums
- Local Radio Club Support