-- copymail schema -- MySQL/MariaDB CREATE DATABASE IF NOT EXISTS copymail CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; USE copymail; CREATE TABLE IF NOT EXISTS config ( `key` VARCHAR(100) PRIMARY KEY, value TEXT NOT NULL, updated_at DATETIME DEFAULT NOW() ON UPDATE NOW() ); INSERT INTO config (`key`, value) VALUES ('domain', 'mail.local'), ('hostname', 'raspberrypi'), ('smtp_port', '25'), ('submission_port','587'), ('imap_port', '143'), ('imaps_port', '993'), ('smb_workgroup', 'WORKGROUP'), ('install_done', '0') ON DUPLICATE KEY UPDATE `key` = `key`; CREATE TABLE IF NOT EXISTS accounts ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(64) NOT NULL UNIQUE, email VARCHAR(200) NOT NULL UNIQUE, display_name VARCHAR(100), smb_path VARCHAR(255) NOT NULL, webhook_url VARCHAR(500) NULL, active TINYINT(1) NOT NULL DEFAULT 1, created_at DATETIME DEFAULT NOW() ); CREATE TABLE IF NOT EXISTS source_file ( id INT AUTO_INCREMENT PRIMARY KEY, account_id INT, title VARCHAR(255), sender VARCHAR(255), file_name VARCHAR(255) NOT NULL, date_processing DATETIME DEFAULT NOW(), FOREIGN KEY (account_id) REFERENCES accounts(id) ON DELETE SET NULL ); CREATE TABLE IF NOT EXISTS files ( id INT AUTO_INCREMENT PRIMARY KEY, source_file_id INT, file_name VARCHAR(255) NOT NULL, path VARCHAR(500) NOT NULL, FOREIGN KEY (source_file_id) REFERENCES source_file(id) ON DELETE CASCADE ); CREATE TABLE IF NOT EXISTS admin_users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(64) NOT NULL UNIQUE, password VARCHAR(255) NOT NULL, created_at DATETIME DEFAULT NOW() ); -- Mot de passe par défaut: admin / copymail2024 -- SHA-256 de "copymail2024" INSERT INTO admin_users (username, password) VALUES ('admin', '$2y$12$placeholder_replaced_by_install_sh') ON DUPLICATE KEY UPDATE username = username;