diff --git a/db/init/init-schema.sql b/db/init/init-schema.sql index b8c3e2c..37fb103 100644 --- a/db/init/init-schema.sql +++ b/db/init/init-schema.sql @@ -1,24 +1,13 @@ --- Create the database if it doesn't exist -CREATE DATABASE IF NOT EXISTS radius; -USE radius; +-- init-schema.sql --- Create the user if it doesn't exist -CREATE USER IF NOT EXISTS 'radiususer'@'%' IDENTIFIED BY 'radiuspass'; - --- Grant permissions to the user -GRANT ALL PRIVILEGES ON radius.* TO 'radiususer'@'%'; - --- Apply the changes -FLUSH PRIVILEGES; - --- Table for registered users (MAC-based auth) +-- Create users table CREATE TABLE IF NOT EXISTS users ( mac_address CHAR(12) NOT NULL PRIMARY KEY CHECK (mac_address REGEXP '^[0-9A-Fa-f]{12}$'), description VARCHAR(200), vlan_id VARCHAR(64) NOT NULL ); --- Table for auth logs +-- Create auth_logs table CREATE TABLE IF NOT EXISTS auth_logs ( id INT AUTO_INCREMENT PRIMARY KEY, mac_address CHAR(12) NOT NULL CHECK (mac_address REGEXP '^[0-9A-Fa-f]{12}$'), @@ -27,7 +16,7 @@ CREATE TABLE IF NOT EXISTS auth_logs ( result VARCHAR(500) DEFAULT NULL ); --- Table for MAC vendor caching +-- Create mac_vendors table CREATE TABLE IF NOT EXISTS mac_vendors ( mac_prefix CHAR(6) NOT NULL PRIMARY KEY CHECK (mac_prefix REGEXP '^[0-9A-Fa-f]{6}$'), vendor_name VARCHAR(255), @@ -36,7 +25,7 @@ CREATE TABLE IF NOT EXISTS mac_vendors ( last_updated DATETIME DEFAULT CURRENT_TIMESTAMP ); --- Table for VLAN groups +-- Create groups table CREATE TABLE IF NOT EXISTS groups ( vlan_id VARCHAR(64) NOT NULL PRIMARY KEY, description VARCHAR(200) diff --git a/docker-compose.yml b/docker-compose.yml index a2fbf32..861f131 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,8 +3,11 @@ services: db: image: simonclr/radmac-db:latest - env_file: - - .env + environment: + MARIADB_ROOT_PASSWORD: ${MARIADB_ROOT_PASSWORD} + MARIADB_DATABASE: ${DB_NAME} + MARIADB_USER: ${DB_USER} + MARIADB_PASSWORD: ${DB_PASSWORD} restart: unless-stopped ports: - "3306:3306"