wip: wireguard
This commit is contained in:
+43
-1
@@ -832,6 +832,44 @@ def update_peer_ip():
|
||||
logger.error(f"Error updating peer IP: {e}")
|
||||
return jsonify({"error": str(e)}), 500
|
||||
|
||||
@app.route('/api/wireguard/peers/status', methods=['POST'])
|
||||
def get_peer_status():
|
||||
"""Get WireGuard peer status."""
|
||||
try:
|
||||
data = request.get_json(silent=True)
|
||||
if data is None or 'public_key' not in data:
|
||||
return jsonify({"error": "Missing public key"}), 400
|
||||
|
||||
public_key = data['public_key']
|
||||
status = wireguard_manager.get_peer_status(public_key)
|
||||
return jsonify(status)
|
||||
except Exception as e:
|
||||
logger.error(f"Error getting peer status: {e}")
|
||||
return jsonify({"error": str(e)}), 500
|
||||
|
||||
@app.route('/api/wireguard/network/setup', methods=['POST'])
|
||||
def setup_network():
|
||||
"""Setup network configuration for internet access."""
|
||||
try:
|
||||
success = wireguard_manager.setup_network_configuration()
|
||||
if success:
|
||||
return jsonify({"message": "Network configuration setup completed successfully"})
|
||||
else:
|
||||
return jsonify({"error": "Failed to setup network configuration"}), 500
|
||||
except Exception as e:
|
||||
logger.error(f"Error setting up network configuration: {e}")
|
||||
return jsonify({"error": str(e)}), 500
|
||||
|
||||
@app.route('/api/wireguard/network/status', methods=['GET'])
|
||||
def get_network_status():
|
||||
"""Get network configuration status."""
|
||||
try:
|
||||
status = wireguard_manager.get_network_status()
|
||||
return jsonify(status)
|
||||
except Exception as e:
|
||||
logger.error(f"Error getting network status: {e}")
|
||||
return jsonify({"error": str(e)}), 500
|
||||
|
||||
@app.route('/api/wireguard/peers/config', methods=['POST'])
|
||||
def get_peer_config():
|
||||
try:
|
||||
@@ -849,10 +887,14 @@ def get_peer_config():
|
||||
# Get server configuration
|
||||
server_config = wireguard_manager.get_server_config()
|
||||
|
||||
# Check if IP already has a subnet mask, if not add /32
|
||||
peer_ip = peer.get('ip', '10.0.0.2')
|
||||
peer_address = peer_ip if '/' in peer_ip else f"{peer_ip}/32"
|
||||
|
||||
# Generate client configuration using peer registry data
|
||||
config = f"""[Interface]
|
||||
PrivateKey = {peer.get('private_key', 'YOUR_PRIVATE_KEY_HERE')}
|
||||
Address = {peer.get('ip', '10.0.0.2')}/32
|
||||
Address = {peer_address}
|
||||
DNS = 8.8.8.8, 1.1.1.1
|
||||
|
||||
[Peer]
|
||||
|
||||
Reference in New Issue
Block a user