82 lines
2.3 KiB
Bash
82 lines
2.3 KiB
Bash
#!/bin/bash
|
|
|
|
# Default installation prefix
|
|
PREFIX=${PREFIX:-/usr/local}
|
|
|
|
# Parse command line arguments
|
|
while [[ $# -gt 0 ]]; do
|
|
case $1 in
|
|
--prefix=*)
|
|
PREFIX="${1#*=}"
|
|
shift
|
|
;;
|
|
--help)
|
|
echo "Usage: $0 [--prefix=/installation/path]"
|
|
echo "Default prefix is /usr/local"
|
|
exit 0
|
|
;;
|
|
*)
|
|
echo "Unknown option: $1"
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
# Build the project
|
|
echo "Building nx9-dns-server..."
|
|
cargo build --release
|
|
|
|
# Create necessary directories
|
|
echo "Creating directories in $PREFIX..."
|
|
sudo mkdir -p "$PREFIX/bin"
|
|
sudo mkdir -p "$PREFIX/lib/nx9-dns-server"
|
|
sudo mkdir -p "$PREFIX/etc/nx9-dns-server"
|
|
sudo mkdir -p "$PREFIX/share/doc/nx9-dns-server"
|
|
sudo mkdir -p "$PREFIX/share/man/man1"
|
|
|
|
# Install binary
|
|
echo "Installing binary..."
|
|
sudo install -m 755 target/release/nx9-dns-server "$PREFIX/bin/"
|
|
|
|
# Install configuration
|
|
echo "Installing configuration files..."
|
|
sudo install -m 644 config/nx9-dns-server.conf "$PREFIX/etc/nx9-dns-server/" 2>/dev/null || echo "No config file found, skipping..."
|
|
|
|
# Install documentation
|
|
echo "Installing documentation..."
|
|
sudo install -m 644 README.md "$PREFIX/share/doc/nx9-dns-server/" 2>/dev/null || echo "No README found, skipping..."
|
|
sudo install -m 644 LICENSE "$PREFIX/share/doc/nx9-dns-server/" 2>/dev/null || echo "No LICENSE found, skipping..."
|
|
|
|
# Install man page if it exists
|
|
if [ -f doc/nx9-dns-server.1 ]; then
|
|
echo "Installing man page..."
|
|
sudo install -m 644 doc/nx9-dns-server.1 "$PREFIX/share/man/man1/"
|
|
sudo gzip -f "$PREFIX/share/man/man1/nx9-dns-server.1"
|
|
fi
|
|
|
|
# Create systemd service file
|
|
echo "Creating systemd service file..."
|
|
cat > nx9-dns-server.service << EOF
|
|
[Unit]
|
|
Description=NX9 DNS Server
|
|
After=network.target
|
|
|
|
[Service]
|
|
ExecStart=$PREFIX/bin/nx9-dns-server
|
|
Environment=DNS_DB_PATH=/var/lib/nx9-dns-server/dns.db
|
|
Environment=DNSSEC_KEY_FILE=/etc/nx9-dns-server/dnssec.key
|
|
Restart=always
|
|
User=nx9-dns
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
EOF
|
|
|
|
sudo install -m 644 nx9-dns-server.service /lib/systemd/system/
|
|
rm nx9-dns-server.service
|
|
|
|
echo "Installation completed successfully!"
|
|
echo "To start the service:"
|
|
echo "1. Create nx9-dns user: sudo useradd -r -s /bin/false nx9-dns"
|
|
echo "2. Enable the service: sudo systemctl enable nx9-dns-server"
|
|
echo "3. Start the service: sudo systemctl start nx9-dns-server" |